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)