服务器终端性能测试之GPU burn压力测试

GPU burn 测试GPU
1.下载软件
https://github.com/wilicc/gpu-burn
wget https://codeload.github.com/wilicc/gpu-burn/zip/master

2.解压缩

unzip gpu-burn-master.zip

3.进入目录编译(确保cuda环境变量已经配置成功 nvcc -v能显示结果)

cd gpu-burn-master
make

4.编译成功后,会在当前目录生成 gpu_burn 这个文件

./gpu_burn

5.默认执行,跑全部GPU卡,空格后面参数为时间,一般快速测试设置100,稳定性测试为500

[root@localhost gpu-burn-master]#
./gpu_burn 100
GPU 0: Tesla V100 (UUID: GPU-6250466c-35ed-c279-fc0b-3b9b613a586f)
GPU 1: Tesla V100 (UUID: GPU-0a4a2b9c-d32c-1ba2-42a0-151ed9907d57)
GPU 2: Tesla V100 (UUID: GPU-f6cf184f-9173-1edd-648f-71e841afe152)
GPU 3: Tesla V100 (UUID: GPU-044f96e6-cc66-cc93-6283-07b829216f91) Initialized device 2 with 11178 MB of memory (10993 MB available, using 9894 MB of it), using FLOATS
Initialized device 1 with 11178 MB of memory (10993 MB available, using 9894 MB of it), using FLOATS
Initialized device 3 with 11178 MB of memory (10993 MB available, using 9894 MB of it), using FLOATS
Initialized device 0 with 11178 MB of memory (10993 MB available, using 9894 MB of it), using FLOATS

6.可以指定某几张卡跑,比如指定0和1号卡

export CUDA_VISIBLE_DEVICES=0,1
./gpu_burn 100

如何找出故障卡

  1. dmesg -l err 筛选出错误卡的Bus-Id

在这里插入图片描述

  1. 根据Bus-Id找出对应的GPU卡编号,在跑测试的时候排除它,比如机器8张卡,device 2 故障,那个参数这 样写:

export CUDA_VISIBLE_DEVICES=0,1,3,4,5,6,7 #2不写在里面
./gpu_burn 100

  1. 跑完之后关机,找出那张没有温度的卡,即故障卡

压测一周命令:nohup ./gpu_burn 604800 &
top可以查看8卡同时在跑
在这里插入图片描述

抓取GPU压测温度功耗:nvidia-smi -l 10 --format=csv --filename=report.csv --query-gpu=timestamp,name,temperature.gpu,power.draw
10秒后可以看到日志信息里有数据
抓取信息命令需要在tmux里执行
在这里插入图片描述在这里插入图片描述

其他详细参数信息参考
nvidia-smi -h
nvidia-smi --help-query-gpu
日志文件
在这里插入图片描述

  • 24
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
1 页 Edit by Joson https://www.baidu.com/p/happy_Joson Stree_GPU 压力测试 一、测试介绍 常搞服务器测试的,会有很多测试工具,比如测试硬盘的 iometer,网络测 试的有 IxChariot,IPfer,测试内存的有 stree,整机压力测试 HPC_Breakin 等,但 整机测试 GPU 或是显卡的工具就比较少,专业的测试是必须要有的。 很多个人或是公司买了 GPU 服务器,显卡回来,安装上去后,不知道如 何整机测试,怎么压力测试,怎么检测是否有问题,做开发设计的怎么测试主板 是否有 bug,整机散热调优方案,功耗测试等,通过使使用 stree_GPU 工具,可 以使 GPU/显卡发挥 90%以上的性能,从而发现存在的隐患。 直接介绍一套简单的测试工具 Stree_GPU, 适合在 windows 7,win8,win10,2008 R2 等 windows 系统下测试的。 2 页 Edit by Joson https://www.baidu.com/p/happy_Joson 1、 准备工作环境 你的机器安装上显卡/GPU 卡后,然后再安装上述的操作系统,机器需要连外 网才能使用 Stree_GPU 测试。但它不占用外网资源。 2、安装驱动 这个不用我说了,你电脑上驱动都要安装,GPU/显卡一般是基于 NVIDIA 芯 片开发的,驱动一般直接到它官网上下载,或是安装个驱动人生,然后让它帮你 全部安装完驱动,省事^_^ 二、 测试工具使用介绍 1、Stree_GPU 工具使用介绍,此 stree_GPU 软件适用 windows 系统下 GPU/显卡专业测试工具 stree_GPU 测试工具下载: https://pan.baidu.com/s/1PnxbcIQvM9Y4YtVude7WNg 2、首先你的机器在 windows 下环境配置好,即显卡驱动要安装上,可以在 NVIDIA 官网下载 cuda 程序安装,能识别到你的显卡并能调休; 3、确保你测试的机器连通外网,因为测试时要模拟卡的力(算力) ; 4、把 Stree_GPU 程序解后拷贝到如 c 盘根目录下,路径不要有中文; 5、解后在 Stree_GPU 目录里,右键以管理员权限运行 stree_GPU.bat 注意观察,如果执行之后屏幕上没有提示错误提示,没有红色的提示,则表示 开始跑起来了,过一会才会有结果,比如会提示有 GPU0:xxxMh/s,这里只要有 数字出现就表示成功了,如果有多张卡,这里会列出来有 GPU0,GPU1…..。如下 3 页 Edit by Joson https://www.baidu.com/p/happy_Joson 图所示 机器测试力程序已经跑起来了,那么就可以在功耗仪上读取电,电流,功耗 数值,如下图所示。 同时可以通过 BMC 管理界面,或是第三方的一些软件,可以监控到机器的各个 部件温度曲线的变化。测试时间越长,如果曲线波动不大,说明机器散热良好。 4 页 Edit by Joson https://www.baidu.com/p/happy_Joson 注意事项: 因为压力测试,注意机器的散热。风扇调全速转。机器跑起来了,此时可以测试 整机的功耗,散热、主板的供电,整机供电等等,一般测试时长 24H,这样可以 检验整机及部件稳定性等。这是最简单但最有效果的测试 GPU/显卡方案。 另外需要注意的是,机器要保持连接外网,并且测试过程不要断开网络,否则测 试不能进行。
CUDA是一种并行计算平台和编程模型,用于利用GPU进行高性能计算。在CUDA中,可以使用CUDA C/C++编程语言来编写并行程序。压力测试程序是用来测试GPU性能和稳定性的程序,可以通过对GPU进行大量计算任务的并行处理来评估其性能。 以下是一个简单的CUDA单GPU压力测试程序的示例: ```cpp #include <stdio.h> // CUDA核函数,每个线程计算一个加法操作 __global__ void addKernel(int *a, int *b, int *c, int n) { int tid = blockIdx.x * blockDim.x + threadIdx.x; if (tid < n) { c[tid] = a[tid] + b[tid]; } } int main() { int n = 1000000; // 数组大小 int *a, *b, *c; // 输入和输出数组 int *d_a, *d_b, *d_c; // 在GPU上分配的输入和输出数组 // 在主机上分配内存 a = (int*)malloc(n * sizeof(int)); b = (int*)malloc(n * sizeof(int)); c = (int*)malloc(n * sizeof(int)); // 在GPU上分配内存 cudaMalloc(&d_a, n * sizeof(int)); cudaMalloc(&d_b, n * sizeof(int)); cudaMalloc(&d_c, n * sizeof(int)); // 初始化输入数组 for (int i = 0; i < n; i++) { a[i] = i; b[i] = i; } // 将输入数组从主机内存复制到GPU内存 cudaMemcpy(d_a, a, n * sizeof(int), cudaMemcpyHostToDevice); cudaMemcpy(d_b, b, n * sizeof(int), cudaMemcpyHostToDevice); // 启动CUDA核函数,每个线程计算一个加法操作 int blockSize = 256; int numBlocks = (n + blockSize - 1) / blockSize; addKernel<<<numBlocks, blockSize>>>(d_a, d_b, d_c, n); // 将输出数组从GPU内存复制到主机内存 cudaMemcpy(c, d_c, n * sizeof(int), cudaMemcpyDeviceToHost); // 验证结果 for (int i = 0; i < n; i++) { if (c[i] != a[i] + b[i]) { printf("Error: incorrect result\n"); break; } } // 释放GPU上的内存 cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); // 释放主机上的内存 free(a); free(b); free(c); return 0; } ``` 这个示例程序使用CUDA C/C++编写,实现了一个简单的向量加法操作。它首先在主机上分配输入和输出数组的内存,然后在GPU上分配相应的内存。接下来,它将输入数组从主机内存复制到GPU内存,并启动CUDA核函数来进行并行计算。最后,它将输出数组从GPU内存复制回主机内存,并验证结果的正确性。最后,释放GPU和主机上的内存。 这个示例程序只是一个简单的压力测试程序,你可以根据自己的需求进行修改和扩展。例如,可以增加更复杂的计算任务,调整数组大小和线程块大小等。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂亮的丑小鸭丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值