General matrix-matrix multiplications (GEMM) in vendor-supplied BLAS libraries are best optimized for square matrices but often show bad performance for tall & skinny matrices, which are much taller than wide. Nvidia's current CUBLAS implementation delivers only a fraction of the potential performance (as given by the roofline model) in this case. We describe the challenges and key properties of an implementation that can achieve perfect performance. We further evaluate different approaches of parallelization and thread distribution, and devise a flexible, configurable mapping scheme. A code generation approach enables a simultaneously flexible and specialized implementation with autotuning. This results in perfect performance for a large range of matrix sizes in the domain of interest, and at least 2/3 of maximum performance for the rest on an Nvidia Volta GPGPU.
Performance Engineering for a Tall & Skinny Matrix Multiplication Kernel on GPUs
2019 ; Bialystok, Polen
2020
Conference paper
Electronic Resource
German
Performance engineering for real and complex tall & skinny matrix multiplication kernels on GPUs
German Aerospace Center (DLR) | 2020
|Automotive engineering | 1985
FIBRE IBCs - Exim's skinny bag
Online Contents | 2001
Interiors - Visteon goes skinny and green
Online Contents | 2009
What's BASH? - The straight skinny from your USAF BASH Team
Online Contents | 2001