GPU 重置是干什么的
设备卡死、驱动状态异常、进程被强杀后显存仍不释放时,可以用 nvidia-smi --gpu-reset 对单卡做软重置,让驱动重新初始化这张卡,从而避免重启整机。代价是它要求该卡上没有在跑的进程(重置会连带影响同卡任务),部分机型与驱动版本还限制更严,属于「先记录、再操作」的应急手段。
基本信息
| 命令 | nvidia-smi --gpu-reset -i <卡序号> |
|---|---|
| 前置条件 | 该卡无计算进程占用 |
| 权限 | root |
| 适用 | 卡死、显存不释放、驱动状态异常 |
| 不适用 | 硬件故障(重置无效,需检修) |
| 兜底手段 | 整机重启 |
典型使用场景
- 推理进程被 kill -9 后显存未释放,新任务起不来
- 单卡异常导致调度器反复把 Pod 调到失败节点
- 驱动升级或回退前清空设备状态
- 掉卡后希望不做整机重启先尝试恢复
- MIG 或实例配置变更前需要设备处于干净状态
- 长时间跑训练后驱动状态异常,需要恢复但不想中断其他卡上的任务
重置流程
重置流程
# 1) 确认无进程占用
nvidia-smi --query-compute-apps=pid,used_memory --format=csv
# 2) 记录现场(Xid、dmesg)
dmesg -T | grep -iE 'xid|nvidia' | tail -30
# 3) 尝试重置单卡
sudo nvidia-smi --gpu-reset -i 0
# 4) 验证驱动是否重新识别该卡
nvidia-smi -i 0重置前后看什么
| 信号 | 正常表现 | 异常表现 |
|---|---|---|
| 显存占用 | 重置后归零 | 仍被占用说明进程没真正退出 |
| Xid 计数 | 不再新增 | 持续增长指向硬件或驱动问题 |
| nvidia-smi -i | 正常显示设备 | 报错或设备消失 |
| dmesg | 无新错误 | 反复出现同类 Xid |
重置只修复驱动状态,不修硬件:同一张卡短期内反复需要重置,说明存在硬件或散热劣化,应转入检修流程,并把此前的 Xid 与 dmesg 日志作为报修证据。
多卡机器上按卡号重置比整机重启影响面小,但 NVLink 互联的卡之间状态可能互相牵连,重置失败时整机重启仍是可靠收尾。
重置无效时的排查顺序:先确认进程真的退出(残留的僵尸子进程仍可能持有设备),再看内核模块状态与 dmesg 新报错;MIG 实例要先卸载实例再动设备,顺序反了会一直报设备忙。