2016 2nd Workshop on Machine Learning in HPC Environments (MLHPC) (2016)
Salt Lake City, Utah, USA
Nov. 14, 2016 to Nov. 14, 2016
We present a portable and highly-optimized Deep Neural Network (DNN) algorithm and its implementation techniques. Our approach is a novel combination of existing HPC techniques that methodically applies autotuning as well as data layout and low-level optimizations that achieve performance matching and/or exceeding what is possible with either reverse engineering and manual assembly coding or proprietary vendor libraries. The former was done inside the maxDNN implementation and the latter is represented by cuDNN. Our work may be directly applied to the most time consuming part of DNN workflow, namely the training process which often needs a restart when it stagnates due to, for example, diminishing gradients and getting stuck in local minima. With the result of performance tests on a consumer-grade GPU with the latest High Bandwidth Memory (HBM) stack, our methodology can match a server grade hardware at a fraction of the price. Another tuning sweep on a new GPU architecture from a different vendor also attests to the portability of our approach and the quality of our implementation.
Y. M. Tsai, P. Luszczek, J. Kurzak and J. Dongarra, "Performance-Portable Autotuning of OpenCL Kernels for Convolutional Layers of Deep Neural Networks," 2016 2nd Workshop on Machine Learning in HPC Environments (MLHPC), Salt Lake City, Utah, USA, 2016, pp. 9-18.