2022年NVIDIAGPU上的Linpack性能测试初探_第1页
2022年NVIDIAGPU上的Linpack性能测试初探_第2页
2022年NVIDIAGPU上的Linpack性能测试初探_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NVIDIA GPU 上的 Linpack 性能测试初探1. Linpack 测试简介Linpack 性能测试是高性能运算机的标准测试之一,其测试性能是全球 Top500超级运算机排行榜的排名依据 1 ; Top500 每年公布两次排行榜,在 2022年6月的榜单中,由曙光公司研制的星云超级运算机取得了第 2名的好成果,其实行了通用 CPU Intel Xeon 5650 和异构加速部件 NVIDIA Tesla C2050的混合架构;在本次榜单中,以 GPU作为加速部件的超级运算机仍有国防科大研制的天河 1号 第7名 和中科院过程所研制的 IPE Mole-8.5 第19名等;简洁来说, L

2、inpack测试是用高斯消元法求解稠密线性方程组64 位的双精度浮点数 ;在 CPU上,有标准的参考实现HPL软件包 2 ,其实现了二维块卷帘的数据分布,部分选主元的 LU分解,递归的 Panel 分解, look-ahead 技术,多种广播算法等多种算法和优化;在进行 Linpack 测试时,可选取不同的 HPL参数组合 比如:矩阵规模 N,分块大小 nb 等 ,不同的 BLAS与 MPI 库,不同的编译参数等进行调优,以得到较好的 Linpack 性能;2. HPL 软件包在 NVIDIA GPU 上移植和优化由于 HPL软件包实现了较多的功能和优化,所以在NVIDIA GPU 上的 Li

3、npack 测试也以此为基础,进行移植和优化; 本文介绍的 HPL软件包的移植与实现方式,主要参考了Fatica3的利用 NVIDIA GPU加速 Linpack 的工作;文献 4 中对于 HPL软件包在 Linpack 发觉 dgemm函数的执行时间占到了大部分测试时各个函数的运行时间进行了统计和分析, 约90%左右 ,其次是 dtrsm 函数;所以,我们的基本思想是关注利用 GPU加速 dgemm与 dtrsm 函数;同时,此种方式也使代码的改动量较小;具体如下:CPU与 GPU混合的 dgemm实现CPU与 GPU混合的 dgemm实现,就是将矩阵乘法中的一部分放到 GPU上进行,调用

4、NVIDIA CUBLAS中的 dgemm函数 ; 同时,另一部分调用 CPU上 BLAS库中的 dgemm函数,比如 Intel MKL,AMD ACML,GotoBLAS等;使得 CPU与 CPU可以同时进行运算;矩阵的划分如图 1所示,分成了图 1中左 竖切 B和右 横切 A两种情形;缘由是在 HPL调用中,矩阵乘法的参数 M,N,K 存在两种情形,一个是 K较小, M与 N较大,如图 1左的情况,此时划分矩阵 B会得到较好的性能 ; 另一种是 K 与 N相等并较小, 而 M相对较大, 如图 1右,此时划分矩阵 A会得到较好的性能;通过调剂比例因子 R,可以达到 CPU与 GPU间负载的

5、均衡;正确的情形是,CPU上的计算时间 =数据从 CPU到 GPU的传输时间 +GPU运算时间 +结果从 GPU传回 CPU的传输时间;最佳的比例因子 R可以通过多次的试验获得;从实现细节上,有两点需要留意的地方:1CUBLAS的 dgemm,使用了 Volkov5 等人的算法;对于参数 M,N,K 的不同情形性能变化明显,在 M为64的倍数 ,N 和 K 为16的倍数时,性能正确; 所以在划分的时候需要尽量使 GPU上矩阵中意此规章 ;2 过小的数据规模下,GPU并不能发挥作用,所以当规模小于确定阈值的情形下,可以直接调用 CPU的 dgemm函数;CPU与 GPU混合的 dtrsm 实现实

6、行与 dgemm函数类似的划分策略,分别调用 NVIDIA CUBLAS的 dtrsm 函数与 CPU上的BLAS库等;类似的调剂比例因子,是 GPU与 CPU间的负载尽量均衡;不再进行过多的表达;使用 PINNED Memory和 stream 优化 CPU与 GPU数据传输CPU与 GPU间的数据传输是此种实现的瓶颈之一;使用 PINNED Memory可以显著提升PCIe的传输带宽;此外,仍需使用 数据传输重叠;3. Linpack 测试结果CUBLAS 3.1 beta 中支持的 stream 方式,使 GPU上的运算和我们分别在单卡和多卡的情形下,进行了Linpack 测试,单机的测

7、试平台表1所示;单机 NVIDIA GPU的 HPL输出如图 2所示, Linpack 性能为 85.98GFlops ,效率为 68.23%;在进行多卡的测试时,我们使用了中科院过程所的NVIDIA GPU机群,其配置如表 2所示;由于时间所限, 从使用 1个 GPU到使用 16个 GPU的初步 Linpack 性能结果如图 3所示, 16个 GPU Linpack 性能为 761.2GFlops ,效率为 50%;4. 结论本文初步介绍了一种在 CPU和 GPU的混合架构下的 HPL软件包的移植和优化方法;在单机与 16个 GPU的机群环境下进行了初步的 Linpack 测试,分别为 85.98GFLops 和761.2GFlops ;本文介绍的实现方式, 存在两个比较明显的不足:一个是 CPU与 GPU对于 dgemm和 dtrsm是实行静态划分的策略,比例因子 R是固定的, 可知随着矩阵的分解,运算量是变化并逐步减小的, 所以静态划分存在确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论