华南理工大学学报(自然科学版) ›› 2025, Vol. 53 ›› Issue (9): 48-58.doi: 10.12141/j.issn.1000-565X.240498
陆璐1 赵容1 梁志宏2,3 索思亮2,3
1.华南理工大学 计算机科学与工程学院,广东 广州 510006;
2.南方电网科学研究院有限责任公司;
3. 广东省电力系统网络安全企业重点实验室
LU Lu1 ZHAO Rong1 LIANG Zhihong2,3 SUO Siliang2,3
1. School of Computer Science and Engineering, South China University of Technology, Guangzhou 510006, Guangdong, China;
2. Electric Power Research Institute, CSG, Guangzhou 510000, Guangdong, China;
3. Guangdong Provincial Key Laboratory of Power System Network Security, Guangzhou 51000, Guangdong, China
摘要:
通用矩阵乘法(GEMM)是线性代数中最重要的运算,来自不同科学领域的许多应用程序都将其关键部分转换为使用GEMM。GEMM 广泛应用于大模型、机器学习、科学计算和信号处理等等领域。特别是半精度的批处理GEMM (即FP16)一直是许多深度学习框架的核心操作。本文提出了一种半精度批处理GEMM (HGEMM)的GPU优化方案。分块策略方面,该方案提供矩阵大小亲和的分块策略,保证每个波前分配到相同的工作量和计算量;线程同时计算多个矩阵乘法,提高计算单元的利用率。访存优化方面:以多读数据为代价,为每个线程分配相同访存量以便于编译器优化,保证访存和计算时间相互掩盖。对于矩阵尺寸小于16的极小尺寸批处理HGEMM,本文利用4x4x4的Matrix Core和其对应的分块方案,在提升访存性能的同时减少计算的浪费,并提供是否使用共享内存的选项来达到最高性能。本文在AMD GPU MI210平台上将该方案与rocBLAS的两个算子进行了性能对比,结果表明,该方案在AMD GPU MI210上平均性能为rocBLAS hgemm batched的4.14倍,为rocBLAS gemm ex batched的4.96倍。尤其对于极小尺寸批处理HGEMM平均性能为rocBLAS hgemm batched的18.60倍,为 rocBLAS gemm ex batched的14.02倍。