公司动态
测试一个nv gpu 的健康度
针对V100 (Volta, SM 7.0) CUDA 12.8环境以下是从基础检测到深度压力测试的完整工具链及编译方法按检测深度分层一、基础状态检测无需编译1.nvidia-smi— 快速查看GPU状态nvidia-smi-q-dTEMPERATURE,PERFORMANCE,POWER,CLOCK,ECC nvidia-smi dmon-spucm# 持续监控功耗、温度、利用率、显存重点查看Temperature / Power是否过热或功耗异常ECC ErrorsV100支持ECC错误计数应接近0Xid Errors非0值表示硬件/驱动故障2.nvidia-smi nvlink— NVLink 状态多卡时nvidia-smi nvlink--statusnvidia-smi nvlink--get_cumulative_replay_count二、CUDA Samples 编译检测官方基础工具CUDA Toolkit 自带示例程序编译后可用于验证GPU基本功能。编译环境准备exportPATH/usr/local/cuda-12.8/bin:$PATHexportLD_LIBRARY_PATH/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH1. deviceQuery — 设备信息查询# 获取源码gitclone https://github.com/NVIDIA/cuda-samples.gitcdcuda-samples/Samples/1_Utilities/deviceQuery# 编译V100 为 SM 7.0makeSMS70CUDA_PATH/usr/local/cuda-12.8# 运行./deviceQuery期望输出最后一行Result PASS2. bandwidthTest — 显存/PCIe 带宽测试cdcuda-samples/Samples/1_Utilities/bandwidthTestmakeSMS70CUDA_PATH/usr/local/cuda-12.8 ./bandwidthTest支持模式HtoD/DtoHPCIe 带宽DtoD显存内部带宽V100 HBM2 理论 ~900 GB/s--memorypinned使用锁页内存测试3. p2pBandwidthLatencyTest — 多卡 P2P 测试cdcuda-samples/Samples/5_Domain_Specific/p2pBandwidthLatencyTestmakeSMS70CUDA_PATH/usr/local/cuda-12.8 ./p2pBandwidthLatencyTest三、nvbandwidth — NVIDIA 官方带宽测试工具比 bandwidthTest 更专业支持更多 memcpy 模式。编译gitclone https://github.com/NVIDIA/nvbandwidth.gitcdnvbandwidth# 要求CUDA 11.x, CMake 3.20, GCC 7.xcmake.make-j$(nproc)运行./nvbandwidthV100 参考值Device↔Device (HBM2)~800–900 GB/sHost↔Device (PCIe 3.0 x16)~12–16 GB/s四、gpu-burn — GPU 压力测试烤机开源工具通过持续执行 GEMM 运算将 GPU 满载检测稳定性。编译CUDA 12.8 适配版gitclone https://github.com/wilicc/gpu-burncdgpu-burn# 关键CUDA 12.x 默认 PTX 可能与旧驱动不兼容需显式指定 SM 7.0makeNVCCFLAGS-archsm_70 -gencodearchcompute_70,codesm_70\CFLAGS-I/usr/local/cuda-12.8/include -O3\LDFLAGS-L/usr/local/cuda-12.8/lib64 -lcuda -lcublas -lcudart⚠️已知问题CUDA 12.x 编译的 PTX 在某些环境下会出现unsupported toolchain错误。若遇到此问题可尝试降低 compute capability 或更新驱动。运行# 默认测试10秒指定300秒5分钟./gpu_burn300# 仅测试指定GPU./gpu_burn-i0300# 使用双精度V100 FP64 性能强./gpu_burn-d300# 指定显存占用百分比./gpu_burn-m90%300健康判断运行期间无errors、无DIED!、温度稳定即通过。五、NVIDIA GPUStressTest — 官方压力测试NVIDIA 官方开源的 BLAS 矩阵乘法压力测试支持多种数据类型。编译gitclone https://github.com/NVIDIA/GPUStressTest.gitcdGPUStressTestmkdirbuildcdbuild cmake-DDEBUG_MATRIX_SIZES:BOOLON..make运行./gstgst.out../util/parse_memory_targets.bash输出示例中会显示每种数据类型FP16/FP32/FP64的测试结果和good: 1表示通过。V100 的 FP64 性能约为 7.8 TFLOPSFP16 (Tensor Core) 约 125 TFLOPS。六、NVIDIA DCGM — 数据中心级健康诊断最专业DCGM 是 NVIDIA 官方的数据中心 GPU 管理工具支持 V100提供被动监控Background Health实时监测 PCIe、显存、温度、NVLink、Xid 错误等主动诊断Active Diagnostics分三级深度测试安装# Ubuntu/Debiansudoapt-getinstalldatacenter-gpu-manager# 或从 NVIDIA 仓库安装最新版1. 被动健康监控# 启动 host enginesudonv-hostengine# 查看健康状态dcgmi health-g1-c监控项包括PCIe 重传、ECC 错误、温度越限、Xid 错误、InfoROM 损坏等。2. 主动诊断三级# 快速检测~秒级- 软件/部署检查dcgmi diag-r1# 中等检测~2分钟- 加入硬件/集成测试dcgmi diag-r2# 完整检测~15分钟- 包含压力测试dcgmi diag-r3诊断覆盖软件部署、显存、PCIe 带宽、功耗压力、计算正确性等。七、推荐检测流程阶段工具目的时间1nvidia-smi快速查看ECC/Xid/温度10秒2deviceQuery确认CUDA设备可识别10秒3bandwidthTest/nvbandwidth验证显存/PCIe带宽正常1分钟4dcgmi diag -r 2中等深度硬件诊断2分钟5gpu-burn 300或GPUStressTest满载压力测试5分钟6dcgmi diag -r 3完整系统验证15分钟八、V100 关键健康指标参考指标正常范围异常信号GPU 温度 80°C 85°C 持续功耗接近 250W (SXM) / 300W (PCIe)远低于 TDP 且负载高ECC 错误0 0 表示显存故障Xid 错误0任何非0值需排查HBM2 带宽~800–900 GB/s (DtoD) 700 GB/sPCIe 带宽~12–16 GB/s (x16) 10 GB/s如果检测到ECC 错误持续增长或Xid 错误建议运行dcgmi diag -r 3做完整诊断必要时联系 NVIDIA 支持。