使用gpu_burn对GPU进行压测

1. 引入

根据参考1的描述,GPU在如下不稳定的情况下,是会发生问题的:

  • 温度过高
  • 温度过低
  • 超频
    不稳定会对GPU的结果造成影响,哪怕是完全相同的程序,在不稳定的GPU上得到的结果也会是不同的。所以我们对GPU测试,需要跑上一段时间(几十分钟)的程序。

目前很多GPU的测试工具,从下载、安装、配置都是比较复杂的,而且很多工具是用OpenGL做渲染测试,这样的测试工具也没法在命令行中运行。

那么问题来了,有没有一个轻量、小巧的工具,能在命令行中运行,来对GPU进行压测呢?gpu_burn就是答案。

2. gpu_burn的使用步骤

笔者在ubuntu和centos进行测试。

  1. clone程序
git clone https://github.com/wilicc/gpu-burn.git
  1. 编译
cd gpu-burn
make

编译后就能在这个目录中得到可执行文件gpu_burn

  1. 运行压测
./gpu_burn -d 100

其中,-d表示进行双精度浮点数计算,100表示进行压测持续100秒(这会导致GPU显存都被占用,100%的运行)。

  1. 测试结果

运行压测命令后,能得到如下的测试结果:
(1)服务器上,每一个GPU的具体型号与UUID。比如V100S-PCIE-32GB;
(2)运行压测的中间过程,比如运行了10%,20%,100%的结果
(3)细节参数输出,比如GPU的速度、报错、温度

proc'd: 594 (6692 Gflop/s) - 594 (6685 Gflop/s) - 594 (6600 Gflop/s) - 594 (6701 Gflop/s) - 594 (6693 Gflop/s) - 594 (6757 Gflop/s) - 594 (6700 Gflop/s) - 594 (6754 Gflop/s)   
errors: 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0  
temps: 55 C - 53 C - 56 C - 57 C - 56 C - 55 C - 56 C - 51 C

从这里,我们可以看到

  • 每一个GPU的计算速度,比如GPU0为6692 Gflop/s,GPU1为6685 Gflop/s,这里显示了8个GPU的结果
  • errors:表示哪些GPU有问题
  • temps:表示各个GPU的温度(摄氏度)

(4)最终结论:通过如下的输出,告诉我们每一个GPU是否工作正常

Tested 8 GPUs:
        GPU 0: OK
        GPU 1: OK
        GPU 2: OK
        GPU 3: OK
        GPU 4: OK
        GPU 5: OK
        GPU 6: OK
        GPU 7: OK

3. 结论

使用gpu_burn,能在命令行中,对服务器上的每一个GPU进行压力测试,得出其速度、温度等关键指标。

参考

  1. http://wili.cc/blog/gpu-burn.html
  2. https://github.com/wilicc/gpu-burn

相关推荐

  1. 使用gpu_burnGPU进行

    2024-02-08 14:28:01       50 阅读
  2. C#使用SharpZipLib文件进行压缩和解

    2024-02-08 14:28:01       49 阅读
  3. 使用BenchmarkSQLopenGauss

    2024-02-08 14:28:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 14:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 14:28:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 14:28:01       82 阅读
  4. Python语言-面向对象

    2024-02-08 14:28:01       91 阅读

热门阅读

  1. 典型数据结构的模板实现

    2024-02-08 14:28:01       56 阅读
  2. chagpt的原理详解

    2024-02-08 14:28:01       46 阅读
  3. WebGPU Inter-stage 变量

    2024-02-08 14:28:01       49 阅读
  4. watch 和 watchEffect 的使用

    2024-02-08 14:28:01       48 阅读
  5. Nginx中proxy_pass指令斜杠的作用

    2024-02-08 14:28:01       52 阅读
  6. 列出使用挂载点的进程,并结束进程 shell脚本

    2024-02-08 14:28:01       41 阅读
  7. CSS transition(过渡效果)详解

    2024-02-08 14:28:01       48 阅读
  8. IT行业有哪些证书含金量高?

    2024-02-08 14:28:01       87 阅读
  9. 什么是IDE?新手用哪个IDE比较好?

    2024-02-08 14:28:01       56 阅读
  10. 3分钟带你了解Vue3的nextTick()

    2024-02-08 14:28:01       52 阅读
  11. Python OCR 之旅:PaddleOCR 与 pytesseract 比较及应用

    2024-02-08 14:28:01       51 阅读