手动释放GPU服务器的显存
问题描述
大家在中断训练深度学习程序的时候都用什么方法呢?
方法一:
终端输入nvidia-smi,找到训练程序的PID,然后用kill -9 PID释放
方法二:
终端输入top,找到自己的训练程序的PID,kill掉即可
当采用多线程训练(Dataloader的worker>0)的时候,可能会出现PID已经杀死了,但是显存没释放。。
解决方法
新建文件FreeGPUMem.py
touch FreeGPUMem.py
复制下面的代码
import os
result = os.popen("fuser -v /dev/nvidia*").read()
results = result.split()
for pid in results:
os.system(f"kill -9 {int(pid)}")
运行
python FreeGPUMem.py
搞定
编辑于 2022-10-22 13:35