arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1905.03136cs.MScs.PF
收藏

基于GPU的真实复杂高瘦矩阵乘法核性能工程

Performance Engineering for Real and Complex Tall & Skinny Matrix Multiplication Kernels on GPUs

Dominik Ernst, Georg Hager, Jonas Thies, Gerhard Wellein

摘要:

在供应商提供的BLAS库中,具有双精度实数和复数项(DGEMM和ZGEMM)的一般矩阵-矩阵乘法最适合于方形矩阵,但对于高而宽的高而瘦的矩阵,性能往往很差。NVIDIA目前的CUBLAS实现仅提供了屋顶模型所示潜在性能的一小部分。我们描述的挑战和关键特征的实施,可以实现接近最佳性能。我们进一步评估不同的策略的并行化和线程分布,并设计一个灵活的,可配置的映射方案。为了确保灵活性并允许高度定制的实现,我们将代码生成与自动调优相结合。对于感兴趣领域中的大范围矩阵大小,我们实现了至少2/3的屋顶性能,并且在NVIDIA Volta GPGPU上的性能通常远远超过最先进的CUBLAS结果。

英文摘要:

General matrix-matrix multiplications with double-precision real and complex entries (DGEMM and ZGEMM) 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 indicated by the roofline model in this case. We describe the challenges and key characteristics of an implementation that can achieve close to optimal performance. We further evaluate different strategies of parallelization and thread distribution, and devise a flexible, configurable mapping scheme. To ensure flexibility and allow for highly tailored implementations we use code generation combined with autotuning. For a large range of matrix sizes in the domain of interest we achieve at least 2/3 of the roofline performance and often substantially outperform state-of-the art CUBLAS results on an NVIDIA Volta GPGPU.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑