1. 基础状态检查
目标:确认GPU是否被系统识别
# 查看所有GPU信息(NVIDIA) nvidia-smi # 查看PCI设备信息(通用) lspci | grep -i nvidia # 检查内核模块加载 lsmod | grep nvidia
故障现象:
命令无输出 → 驱动未安装
显示
No devices found→ 硬件连接问题温度/功耗异常 → 散热故障
2. 驱动与CUDA环境排查
目标:验证驱动兼容性
# 检查驱动版本 cat /proc/driver/nvidia/version # 验证CUDA工具包 nvcc --version # 测试CUDA基础功能 /usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery
常见问题:
版本冲突:使用
sudo apt list --installed | grep nvidia核对驱动版本CUDA报错:运行
cuda-install-samples-.sh 重装测试用例
3. 多卡通信故障排查
目标:检测GPU间通信状态(NCCL/P2P)
# 测试NCCL通信 git clone https://github.com/NVIDIA/nccl-tests.git cd nccl-tests && make ./build/all_reduce_perf -b 8 -e 256M -f 2 # 检查P2P访问能力 nvidia-smi topo -m
关键指标:
P2P状态:
nvidia-smi中P2P列应为OKNCCL错误:日志含
transport retry→ 网络配置问题
4. 资源分配异常处理
目标:解决显存/进程冲突
# 查看GPU进程占用 nvidia-smi --query-compute-apps=pid,used_memory --format=csv # 强制释放显存(谨慎使用) sudo kill -9 $(nvidia-smi --query-compute-apps=pid --format=csv,noheader) # 设置GPU可见性(隔离单卡调试) CUDA_VISIBLE_DEVICES=0 python test_script.py
典型场景:
CUDA_ERROR_OUT_OF_MEMORY→ 僵尸进程占用显存多卡负载不均 → 检查任务分配逻辑
5. 硬件级深度检测
目标:定位物理故障
# 压力测试(需安装cuda-samples) /usr/local/cuda/samples/1_Utilities/bandwidthTest/bandwidthTest # 持续监控工具 nvidia-smi dmon # 动态刷新指标 nvtop # 可视化监控(需安装)
硬件故障特征:
带宽测试失败 → PCIe插槽或线材故障
ECC Errors持续增长 → 显存损坏
6. 日志与系统级排查
目标:分析底层日志
# 查看内核日志(过滤GPU错误) dmesg | grep -i nvidia # NVIDIA驱动日志 cat /var/log/nvidia-installer.log # 系统服务状态(适用于A100/H100) systemctl status nvidia-persistenced
日志关键词:
GPU has fallen off the bus→ 电源不足Failed to initialize NVML→ 驱动加载失败
重要提示:
多卡服务器需确保BIOS中Above 4G Decoding开启
使用
sudo update-pciids更新硬件数据库推荐定期运行
dcgmi diag -r 3进行全面诊断(需安装DCGM)