烤机判定标准:gpu-burn 参数与 dcgmi 四级诊断怎么用

2026-10-28 12:41 3 阅读量

第一步,先把 gpu-burn 编译对。这是最容易翻车的一步,而且报错信息不直观。gpu-burn 的 Makefile 默认按 COMPUTE=7.5 编译,也就是说默认只生成 sm_75 的目标码。在 4090(sm_89)、5090(sm_120)、H100/H200(sm_90)、Blackwell 系(sm_100 家族)上直接 make 出来的二进制,运行时可能报 no kernel image is available for execution on the device,或者干脆起不来。

官方 README 给的两种写法:单一架构用 make COMPUTE=<compute capability>;需要多架构 fatbin,或者要用 sm_90a、compute_100f 这类带架构或家族后缀的特性,就把 COMPUTE 置空,改由 -gencode 驱动:make COMPUTE= NVCCFLAGS='-gencode=arch=compute_86,code=sm_86 -gencode=arch=compute_90,code=sm_90'。注意 COMPUTE 置空后默认的 -arch 会被跳过,架构全靠 NVCCFLAGS 里写全,漏一个就没有那个架构的码。

第二步,参数按目的选。-d 走双精度,计算单元占用更高,验收压测用它;-m 90% 按可用显存比例占用,-m 4096 按固定 MB 占用,二手卡做显存稳定性对比必须用固定 MB 值,否则两次运行的内存布局不可比;-i N 只跑第 N 张卡,用于把可疑卡从 8 卡里隔离出来复测;-l 只列卡不跑;-tc 尝试走 Tensor Core。典型的三条命令:全卡长稳压 ./gpu_burn -d 3600,单卡隔离 ./gpu_burn -i 2 -m 80% 1800,固定显存复测 ./gpu_burn -m 4096 1200。

第三步,dcgmi diag 的四级各自查什么。按 dcgmi diag --help 的官方口径,级号越大包含下面所有级别:-r 1 只做系统验证,秒级,查的是软件栈部署是否正常,不是查硬件;-r 2 增加内存与 PCIe 测试,官方标称约 2 分钟;-r 3 增加 diagnostic、memory_bandwidth、targeted_stress、targeted_power,官方标称约 15 分钟;-r 4 再增加 memtest 与 pulse_test,跑得最久。

这里有个必须注意的口径差。官方 help 写的是「约 15 分钟」,但那是单卡或理想条件下的量级;8 卡系统上 -r 3 实测常到 30~35 分钟,-r 4 更是按小时计。排产验收窗口时按实测留时间,不要按标称的 15 分钟排,否则一定排崩。另外 -r 3 及以上要求 GPU 空闲独占,有别的人在跑任务会互相干扰结果。

还有一个坑:GeForce 与工作站卡只支持 -r 1。二手消费卡走 dcgmi 这套是走不通的,只能用 gpu-burn 加 nvidia-smi 判读。这一点在做混合机型验收时尤其要注意,不要拿数据中心卡的流程套消费卡。

第四步,边跑边看的数据。压测过程中用一条命令就能把温度、频率、功耗和降频原因一起盯住:nvidia-smi --query-gpu=index,temperature.gpu,clocks.sm,power.draw,clocks_event_reasons.active --format=csv -l 5。判定要点有三条:一是 clocks.sm 要在长稳期间维持稳定平台,不能持续下滑;二是 clocks_event_reasons.active 全程应为空,出现 SW Thermal Slowdown 或 HW Slowdown 说明已经撞温度墙或电源墙,这时候测出来的算力是打折的,不能作为通过依据;三是 power.draw 应该贴近 power.limit 并稳定,明显低于 TDP 说明负载没压满,测试本身无效。

第五步,显存与链路的硬指标。nvidia-smi -q -d ECC,PAGE_RETIREMENT,REMAPPED_ROWS 重点看三个量:Uncorrectable(DBE)必须为 0,出现即判失败;Pending Page Retirement 必须为 0;Remapped Rows 的 Correctable/Uncorrectable 若在本次压测期间增长,说明显存在持续劣化。NVLink 用 nvidia-smi nvlink -e 看误码计数,压测前后的增量比绝对值更有意义。

第六步,内核日志里的 XID。压测结束后查 dmesg -T | grep -i xid。按码判读:Xid 48 是不可纠正的双位 ECC,通常需要复位;63/64 是 row remapper 记录/失败,指向 HBM 页退役;74 是 NVLink 错误;79 是 GPU 从总线上掉下来,多为供电或 PCIe 问题;92 是单位 ECC 偏高,可纠正但要盯;94/95 是容器内/外的 ECC 错误。只看「测试没报错」而跳过 dmesg,会漏掉被驱动吞掉的硬件事件。

最后是一句必须说清的边界。dcgmi diag 不等于厂商的现场诊断(field diagnostics),NVIDIA 自己明确说明它不用于判定 RMA 资格,测试失败也可能源自主机、库、散热或供电。所以正确的用法是:dcgmi diag 做筛查,同一张卡连续两次失败就停止反复重测,转走厂商现场诊断流程并留完整日志——反复重测只会把可复现的证据磨掉。

来源:gpu-burn 官方仓库 README