GPU 服务器压力测试核心工具全解析:gpu-burn、cpu-burn 与 CUDA Samples

在 GPU 服务器的性能验证、稳定性排查与运维管理中,压力测试是关键环节,可有效检测硬件极限性能、散热效率及潜在故障。以下从工具原理、核心功能、使用场景等维度,详细介绍三款核心测试工具,帮助用户系统掌握 GPU 服务器压力测试方法。

一、GPU 专属压力测试工具:gpu-burn

gpu-burn是基于 NVIDIA CUDA 框架开发的轻量级 GPU 压力测试工具,专为验证 GPU 核心(CUDA Core)、显存(VRAM)稳定性设计,通过 "饱和式计算" 让 GPU 达到满负载,是检测 GPU 硬件故障(如显存坏块、核心算力衰减)的核心工具。

1. 核心原理

  • 算力拉满 :调用 CUDA 内核函数,执行密集型浮点运算(支持单精度float、双精度double),使 CUDA Core 利用率接近 100%,模拟 AI 训练、高性能计算等真实高负载场景;
  • 显存压榨:分配大尺寸显存缓冲区,循环读写数据,占用 90% 以上显存空间,验证显存带宽、颗粒稳定性,排查显存错误导致的程序崩溃问题;
  • 多卡适配:自动识别服务器中所有 NVIDIA GPU,支持单卡、多卡并行压测,适配多 GPU 集群场景。

2. 核心功能与使用场景

  • 快速稳定性验证:30-60 秒短期测试,可快速判断 GPU 是否存在明显硬件故障(如开机后检测、显卡更换后的初步验证);
  • 长期稳定性考验:2-24 小时持续压测,模拟生产环境下的长时间高负载(如 AI 模型训练、渲染任务),排查隐性稳定性问题;
  • 散热效率评估:压测时实时监控 GPU 核心温度(通常升至 80-90℃),判断服务器散热系统(风扇、风道、散热片)是否满足需求,避免过热降频。

3. 关键注意事项

  • 环境依赖:仅支持 NVIDIA GPU,需提前安装匹配的 NVIDIA 显卡驱动(建议≥450.xx 版本)与 CUDA Toolkit(建议≥10.0 版本);
  • 显存预留 :指定显存缓冲区大小时(如-s 4096表示 4096MB),需预留 1-2GB 显存给系统,避免显存溢出导致测试中断;
  • 结果解读 :测试结束后若显示 "No errors detected",说明 GPU 无硬件错误;若出现 "Error detected",需优先排查显存故障(如通过nvidia-smi -q查看显存错误日志)。

4.gpunurn

  • 两种方式

(1)源码:https://github.com/wilicc/gup-burn

git clone https://github.com/wilicc/gpu-burn

cd gpu-burn

make

./gpu_burn

./gpu_burn 60

./gpu_burn -tc 300 (major >=7)

(2)tar.gz:http://wili.cc/blog/gpu-burn.html

tar -zxvf xx.tar.gz -C

cd xx

make

也可以指定卡去跑

export CUDA_VISIBLE_DEVICES=1

. /gpu_burn 100
. 4090 (tc)

. 2.7% proc'd: 880 (145963 Gflop/s) - 880 (145466 Gflop/s)

errors: 0 - 0 temps: 46 C - 46 C

. 3090ti (tc)

. 55350 Gflop/s

. A100-40GB (tc)

. 100.0% proc'd: 32568 (118649 Gflop/s) - 33534 (12261 Gflop/s)

errors: 0 -0

二、CPU 压力测试工具:cpu-burn(cpu-burn-in)

cpu-burn(全称cpu-burn-in)是一款专注于 CPU 稳定性测试的工具,通过执行高强度数学运算(如素数判定、浮点循环计算),使 CPU 核心、缓存达到满负载,可与gpu-burn配合,实现 GPU 服务器 "CPU+GPU" 全硬件压力测试。

1. 核心原理

  • 核心负载拉满:通过循环执行复杂数学运算(如计算超大整数的素数属性),让 CPU 每个核心的利用率稳定在 99%-100%,模拟多线程计算场景(如分布式任务、数据预处理);
  • 缓存压力测试:运算过程中频繁读写 CPU 一、二、三级缓存,验证缓存一致性与稳定性,排查缓存错误导致的数据计算偏差;
  • 轻量无依赖:无需复杂依赖库,编译后仅生成几十 KB 的可执行文件,支持 Linux、Windows 等多系统,适配不同架构 CPU(x86_64、ARM)。

2. 核心功能与使用场景

  • CPU 硬件故障检测:通过 1-2 小时压测,排查 CPU 核心损坏、电压不稳等问题(如服务器频繁蓝屏、程序随机崩溃时的硬件排查);
  • 整机稳定性验证 :与gpu-burn同时运行,模拟 "CPU 数据预处理 + GPU 计算" 的真实业务场景,测试服务器电源、主板供电的负载能力(如 AI 服务器上线前的整机压力测试);
  • 散热评估:压测时 CPU 温度通常升至 70-85℃,可判断 CPU 散热器(风冷 / 水冷)是否正常工作,避免散热不足导致的 CPU 降频(影响整机性能)。

3. 关键注意事项

  • 线程控制 :需根据 CPU 核心数指定测试线程数(如 8 核 CPU 执行./cpu-burn 8),避免线程数过多导致系统资源争抢,影响测试准确性;
  • 电源保护 :部分老旧服务器电源功率不足,同时运行cpu-burngpu-burn时可能触发电源保护(自动关机),需提前确认电源额定功率;
  • 结果解读 :测试过程中若出现程序闪退、系统卡顿,需优先排查 CPU 硬件故障(如通过dmesg查看 Linux 系统内核错误日志)。

4. cpuburn

(1) 直接解压 ./cpuburn;

Burning 152 CPUs/cores

(2)测试cpu传感器温度

安装

sudo apt install lm-sensors

配置,yes

sudo sensors-detect

watch n -1 sensors

也可以查看系统监视器 (system monitor)

三、CUDA 功能验证与性能参考:CUDA Samples

CUDA Samples 是 NVIDIA 官方提供的 CUDA 开发示例集,包含 100 + 个示例程序,覆盖 CUDA 核心功能(如并行计算、显存管理、多 GPU 通信)与性能优化场景,不仅是 CUDA 开发学习资料,也是 GPU 服务器 CUDA 环境有效性、GPU 功能完整性的验证工具。

1. 核心定位与价值

  • 环境验证基准 :通过运行 Samples 中的基础示例(如vectorAdd向量加法),可快速判断 CUDA 驱动、CUDA Toolkit 是否安装正确,GPU 是否能正常响应 CUDA 调用(避免因环境配置错误导致的 GPU 无法使用);
  • 功能完整性测试 :包含多 GPU 通信(simpleMultiGPU)、显存带宽测试(bandwidthTest)、光线追踪(simpleRayTracing)等示例,可验证 GPU 高级功能(如 NVLink、RTX 光追核心)是否正常工作;
  • 性能参考标准 :部分示例(如nbody天体模拟、matrixMul矩阵乘法)会输出 GPU 算力(GFLOPS)、显存带宽(GB/s)等关键指标,可作为 GPU 性能对比的基准(如不同型号 GPU 的算力差异、同型号 GPU 的性能一致性验证)。

2. 核心使用场景

  • CUDA 环境部署验证 :GPU 服务器新部署 CUDA 环境后,运行vectorAdd示例,若输出 "Test PASSED",说明 CUDA 环境配置正确(可正常调用 GPU 计算);
  • GPU 功能排查 :若 GPU 无法使用某功能(如多 GPU 通信),可运行对应 Samples 示例(如simpleMultiGPU),通过错误日志定位问题(如 NVLink 线缆未插好、CUDA 版本不支持);
  • 性能基准测试 :运行matrixMul示例,对比实测算力与 NVIDIA 官方公布的 GPU 算力(如 Tesla A100 单精度算力为 19.5 TFLOPS),判断 GPU 是否存在性能衰减(如长期高负载导致的硬件老化)。

3. 关键注意事项

  • 版本匹配:CUDA Samples 版本需与 CUDA Toolkit 版本一致(如 CUDA 12.0 需对应 Samples 12.0),版本不匹配可能导致示例编译失败;
  • 功能依赖:部分高级示例(如光线追踪)需 GPU 支持特定架构(如 RTX 系列支持 RTX Core),老旧 GPU(如 GTX 10 系列)运行时会提示功能不支持(属正常现象);
  • 非压力测试工具 :CUDA Samples 以 "功能验证" 为核心,单个示例运行时间短(几秒到几十秒),不能替代gpu-burn进行长期稳定性测试,仅用于环境与功能排查。

4. cuda-samples

安装 cmake

sudo apt install cmake -y

git clone https://github.com/NVIDIA/cuda-samples.git

git clone git@githab.com:NVIDIA/cuda-samples.git

cd cuda-samples

git checkout tags/v12.0

conda deactivate

make

  • references

(1) https://docs.nvidia.com/cuda/demo-suite/index.html

  • cuda-samples/Samples/1_Utilities/

(1) deviceQuery : 设备查询

(2) bandwidthTest: 测试带宽

./bandwidthTestLatencyTest : 两块GPU,卡间p2p带宽

P2P技术允许两个GPU直接相互通信,而不需要通过CPU

4.1 diviceQuery

• ​​​​​​cuda driver version / runtime version

• cuda capability major/minor version number

• cuda cores

◦ 4090: 16384 cuda cores, A100: 6912

• memory bus width

◦ 4090: 384-bit, A100: 5120-bit

In [1]: from fractions import Fraction

Fraction(16384, 6912)

executed in 20ms, finished 12:32:35 2025-08-22

Out[1]: Fraction(64, 27)

In [3]: 16384/6912

executed in 11ms, finished 12:32:51 2025-08-22

Out[3]: 2.3703703703703702

4.2 bandwithTest

不同类型的内存传输

• 主机到设备(host to device):即 CPU 及其内存向 GPU 内存传输数据的性能;

• 设备到主机(device to host):从 GPU 内存回传到主机(系统内存)的性能;

• 设备到设备(device to device):两个 GPU 之间直接传输数据的性能。

4.3 1080ti

In [7]: # 1080ti bandwidth

from IPython.display import Image

Image('./imgs/1080ti-bandwidth.png', height=400, width=500)

Out[7]:[CUDA Bandwidth Test] - Starting...

Running on...

Device 0: GeForce GTX 1080 Ti

Quick Mode

Host to Device Bandwidth, 1 Device(s)

PINNED Memory Transfers

Transfer Size (Bytes) Bandwidth(MB/s)

33554432 6022.3

Device to Host Bandwidth, 1 Device(s)

PINNED Memory Transfers

Transfer Size (Bytes) Bandwidth(MB/s)

33554432 6432.5

Device to Device Bandwidth, 1 Device(s)

PINNED Memory Transfers

Transfer Size (Bytes) Bandwidth(MB/s)

33554432 330783.8

Result = PASS

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

四、总结:三款工具的协同使用场景

在 GPU 服务器测试中,三款工具通常配合使用,形成 "环境验证→功能测试→稳定性压测" 的完整流程:

  1. 环境验证 :先运行 CUDA Samples 的vectorAdd,确认 CUDA 环境正常;
  2. 功能测试 :通过 CUDA Samples 的bandwidthTest(显存带宽)、simpleMultiGPU(多 GPU),验证 GPU 核心功能;
  3. 稳定性压测 :同时运行gpu-burn(60 分钟 +)与cpu-burn(60 分钟 +),测试整机硬件稳定性与散热效率,最终确保 GPU 服务器满足生产环境需求。
相关推荐
陈敬雷-充电了么-CEO兼CTO2 小时前
视频理解新纪元!VideoChat双模架构突破视频对话瓶颈,开启多模态交互智能时代
人工智能·chatgpt·大模型·多模态·世界模型·kimi·deepseek
simodai2 小时前
机器学习1.Anaconda安装+环境配置
人工智能·机器学习
SEO_juper3 小时前
SEO新手入门:什么是SEO及其作用
运维·服务器·搜索引擎·seo·数字营销·seo优化
IT_陈寒3 小时前
JavaScript 2024:10个颠覆你认知的ES新特性实战解析
前端·人工智能·后端
ModelWhale3 小时前
AI教育白皮书解读 | 医学教育数智化转型新机遇,“人工智能+”行动实践正当时
人工智能·ai
大模型真好玩3 小时前
大模型工程面试经典(五)—大模型微调与RAG该如何选?
人工智能·面试·deepseek
无痕melody3 小时前
报错Failed to set ntp: NTP not supported
运维
ZYMFZ4 小时前
Linux 防火墙 Firewalld
linux·运维·服务器
九章云极AladdinEdu4 小时前
临床数据挖掘与分析:利用GPU加速Pandas和Scikit-learn处理大规模数据集
人工智能·pytorch·数据挖掘·pandas·scikit-learn·paddlepaddle·gpu算力