Ubuntu20.04下脚本异常退出后启动任务报cudaGetDeviceCount错误怎么解决
问题解决方案
第一步:清理GPU残留进程
- 执行
nvidia-smi查看占用GPU的进程PID,执行kill -9 <对应PID>杀死异常残留的Python训练进程 - 如果
nvidia-smi无进程但仍报错,执行sudo fuser -v /dev/nvidia*扫描所有占用NVIDIA设备的隐藏进程,杀死所有返回的PID即可
第二步:重置NVIDIA驱动内核模块(杀进程无效时使用)
如果清理进程后问题仍然存在,可通过重装NVIDIA内核模块实现GPU状态软重置,无需重启整机:
- 切换到多用户命令行模式,关闭图形界面避免占用驱动:
sudo systemctl isolate multi-user.target - 卸载所有NVIDIA相关内核模块:
sudo modprobe -r nvidia_uvm nvidia_drm nvidia_modeset nvidia - 重新加载NVIDIA内核模块:
sudo modprobe nvidia nvidia_modeset nvidia_drm nvidia_uvm - 恢复图形界面:
sudo systemctl start graphical.target
后续预防方案
- 在Python训练脚本中添加异常退出钩子,主动释放CUDA缓存:
import atexit import torch def clear_cuda(): if torch.cuda.is_available(): torch.cuda.empty_cache() atexit.register(clear_cuda) - 你报错日志中涉及DCNv2自定义算子,确认该算子的编译版本和当前环境的PyTorch、CUDA版本完全匹配,避免兼容性问题导致CUDA状态异常。
内容的提问来源于stack exchange,提问作者desmond13
相关产品推荐
相关产品推荐

