GPU性能评测指标

转载自:http://linuxperformance.top/

计算性能

评估GPU纯计算性能,主要测试GPU的FP32/FP16和INT8。测试结果可对比官方SPEC发布的值。
  1. GEMM

    为了计算得到GPU实际的浮点计算能力,可以使用GEMM(矩阵乘)的函数来测试计算性能。GEMM根据不同的实现方法其效率存在较大的差异,可以使用CUBLAS(Nvdia提供的CUDA工具包中已包含)测试FP32、FP16极限性能(P100不支持INT8),计算与理论值差距。
    采用CUDA SAMPLE:第7个样例:
    /usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS
    根据机器中所配置的GPU数量执行测试方案,如在8张卡系统上分别测试1,2,4,8卡数量下的FP32/FP16/INT8,测试要求实际计算效率达到SPEC的80%。
    除了GEMM还有GEMV(矩阵乘向量),不过矩阵向量乘最后也是转化成矩阵乘的,测试效果是一样的。只要通过GEMM可以得到GPU卡实际的浮点计算性能。

  2. 仿真计算

  3. VASP

    VASP全称Vienna Ab-initio Simulation Package,是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。目前材料模拟和计算物质科学研究中最流行的商用软件之一。可以用来评测GPU在物质科学计算领域的能力。

  4. HOOMD-Blue

    HOOMD-Blue一个通用粒子仿真套件,规模可以从一个单独先到到GPU的上千个线程。可以定义一个初始条件和交互,告诉HOOMD-Blue如何执行即可进行粒子分析。

  5. COSMO

    COSMO是天气预报程序,天气预报向来都是高性能计算领域。

  6. MILC

    MILC是量子动力学仿真,主要应用场景是量子力学科研机构以及高校物理科室。

  7. Amber

    Amber全称(Assisted Model Building with Energy Refinement),包含生物分子仿真程序。

  8. HACC

    HACC模拟天体物理学,通过GPU计算天体运动过程。当前Nvidia的CUDA针对HACC计算进行了优化。

  9. 深度学习模型

    对大多科学计算而言,其性能主要决定于GPU的浮点运算能力。但是对深度学习任务来说,主要是单精度浮点运算,这也是我们从Nvidia官方材料中看到的,当FP16能提升之后,深度学习的性能也是蹭蹭往上走的。后续深度学习可能会使用默认用更低的精度,如8 bit。
    为了评测GPU的深度学习能力,我们使用Caffe这个框架。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换,具体如下。

  10. Caffe框架

Caffe 是一个深度学习开源框架库,可以运行不同的网络模型,当然也可以用来测试评估网络训练和在线预测及反向迭代性能。覆盖了矩阵乘和卷积的这些基本操作。Caffe依赖 CuDNN,CuBLAS。

CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的库包括Caffe,ConvNet, Torch7等。下载地址见下面GPU相关包处。
Caffe当前包含主流的AlexNet/GoogleNet/Vgg16/ResNet50网络模型。

  1. Nvlink链路性能
Nvlink的链路性能需要关注GPU与GPU之间的带宽吞吐量和访问延时矩阵。通过用samples/1_Utilities里面的p2pBandwidthLatencyTest测试脚本来实现。如果是非nvlink的机器,同样跑这个程序,性能差距会比较明显。
  1. 内存带宽性能
主要关注GPU到系统内存,系统到GPU内存,以及GPU到本地内存的内存带卡。

这个评测可以使用CUDA套件提供的samples/1_Utilities/bandwidthTest来进行测试。