一 概述

本文档将对GPU的显存带宽进行测试说明,通过使用cuda-sample的程式,对GPU to Host,Host to GPU, GPU to GPU三种模式进行测试

二 准备

在测试之前,需要正确安装好GPU驱动和CUDA

如果是Nvlink的机器,除了安装常规的GPU驱动,还需要安装nvidia-fabricmanager服务,此部分可以参考:https://docs.aheadai.cn/193.html

三 安装

前往官网下载NVIDIA官方的CUDA sample程序包,官网地址:https://github.com/NVIDIA/cuda-samples/

也可以到AheadAI的公共资源站上下载:

注意:CUDA sample的包版本不宜过高,建议和CUDA版本匹配

11.0:https://mirrors.aheadai.cn/pkgs/cuda-samples-11.0.tar.gz
11.2:https://mirrors.aheadai.cn/pkgs/cuda-samples-11.2.tar.gz
11.5:https://mirrors.aheadai.cn/pkgs/cuda-samples-11.5.tar.gz
11.6:https://mirrors.aheadai.cn/pkgs/cuda-samples-11.6.tar.gz
11.8:https://mirrors.aheadai.cn/pkgs/cuda-samples-11.8.tar.gz
12.0:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.0.tar.gz
12.1:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.1.tar.gz
12.2:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.2.tar.gz
12.3:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.3.tar.gz
12.4:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.4.tar.gz
12.5:https://mirrors.aheadai.cn/pkgs/cuda-samples-12.5.tar.gz

下载cuda-sample程序包,并上传到服务器上

解压后,找到bandwidthTest文件夹:

find . -name bandwidthTest

一般都在Utilities这个父级目录的下面

进入后,如果报错:

make: /usr/local/cuda/bin/nvcc: Command not found

则进入Makefile文件,将 CUDA_PATH 修改为你实际的CUDA地址:

image-20241111163507520

保存退出后,执行make,这个时候就可以看到编译得到的bandwidthTest这个可执行文件了

image-20241111163604915

四 测试

直接执行编译得到的bandwidthTest文件,即可开始测试:

(sam) qiql@d8fbcca68988:~/ssd/cuda-samples-12.0/Samples/1_Utilities/bandwidthTest$ ./bandwidthTest 
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: NVIDIA A100
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(GB/s)
   2048000000           26.2

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(GB/s)
   2048000000           26.2

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)    Bandwidth(GB/s)
   2048000000           1542.1

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

但这个时候的测试值一般都比较低,这是因为在测试程序中,所操作的数组长度太小导致的,所以GPU的显存性能没有发挥出来

进入 bandwidthTest.cu文件,找到DEFAULT_SIZE 字段,默认是32MB的数据,试探性的对其进行增大,注意:如果数值太大,可能会出现数值溢出或显存不足的情况

image-20241111164027957

通常实测值在理论值的80%左右是比较正常的

如果服务器上有多张卡,那么通过指定:--device参数可以测试指定的卡(卡号通常从0号开始)

比如,测试1号卡的命令为:

./bandwidthTest --device=1
本文系作者 @ admin 原创发布在 文档中心 | AheadAI ,未经许可,禁止转载。