使用CUTLASS在NVIDIA Volta GPU上实现Strassen算法

摘要:运用GPU实现Strassen算法的传统方法通常依赖于现有的高性能矩阵乘法(GEMM),通过以空间换时间的方式。因此,这种方法只能在相对较大且"方形"的矩阵上实现实际加速,由于额外的存储开销,使用范围受到限制。我们提出了一种新型的GPU Strassen原语,可以组合生成一系列Strassen算法。我们的算法利用GPU上的存储和线程层次结构,重用从GEMM继承的共享内存和寄存器文件,融合附加操作,并避免额外的工作空间。我们进一步通过批处理、流化和采用原子操作来利用内核间和内核内的并行性。我们还开发了一个用于NVIDIA Volta GPU的性能模型,以选择适当的阻塞参数并预测GEMM和Strassen的性能。总体而言,我们一级 Strassen 在NVIDIA Tesla V100 GPU上与cublasSgemm相比,可以实现高达1.11倍的加速,交叉点的大小只需1,536。在额外的工作空间下,我们的二级 Strassen 可以在 7,680 处获得1.19倍的加速。

作者:Jianyu Huang, Chenhan D. Yu, Robert A. van de Geijn

论文ID:1808.07984

分类:Mathematical Software

分类简称:cs.MS

提交时间:2018-08-27

PDF 下载: 英文版 中文版pdf翻译中