训练深度学习模型时遇线程仍运行的僵尸进程,该如何处理?
解决cuda-EvtHandlr线程导致的僵尸进程问题
以下是无需重启系统的可行处理步骤:
清理GPU关联进程
- 执行
nvidia-smi查看GPU上的进程占用,定位异常进程的关联信息 - 用
fuser -k /dev/nvidiaX(将X替换为你的GPU设备编号,比如0)强制终止所有访问该GPU的进程,这会清理cuda相关的残留线程,包括[cuda-EvtHandlr]
- 执行
重置cuda驱动服务
- 检查nvidia持久化服务状态:
systemctl status nvidia-persistenced - 若服务异常,重启它:
systemctl restart nvidia-persistenced - 若仍无效,尝试重新加载cuda核心模块(需root权限,会中断所有GPU任务):
rmmod nvidia_uvm && modprobe nvidia_uvm
- 检查nvidia持久化服务状态:
GPU硬件层面重置
执行nvidia-smi --gpu-reset重置目标GPU,这会彻底清空GPU上的所有残留资源,但注意:此操作会中断该GPU上的所有运行任务,仅在其他方法无效时使用后续预防措施
- 遇到cuDNN异常时,优先用
kill -TERM PID优雅终止进程,给进程留足时间清理cuda资源,避免直接使用kill -9 - 升级cuda和cuDNN到官方稳定版本,这类驱动层面的僵尸进程问题通常会在新版本中修复
- 遇到cuDNN异常时,优先用
内容的提问来源于stack exchange,提问作者spin
相关产品推荐
相关产品推荐

