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-smiP2P列应为OK

  • NCCL错误:日志含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)