1. 问题描述
显卡未显存充足,且无进程占用,使用 nvidia-smi 和 sudo fuser -v /dev/nvidia* 均找不到占用进程。
报错:
RuntimeError: CUDA error: out of memory CUDA kernel errors might be asynchronously reported at some
2. 解决方案
2.1 清理未释放缓存(未奏效)
import torch
# 使用`torch.cuda.empty_cache()`函数释放CUDA失活显存
torch.cuda.empty_cache()
# 查看GPU使用情况
print(torch.cuda.memory_allocated())
print(torch.cuda.memory_reserved())
2.2 重启device(未奏效)
from numba import cuda
device = cuda.get_current_device()
device.reset()
cuda.close()
报错:仍然是OOM问题
2.3 重启device(奏效)!!!
先试用 sudo fuser -v /dev/nvidia* 查看占用程序pid,kill掉之后执行下面的命令重启对应的显卡。
nvidia-smi --gpu-reset -i $gpu_id
2.4 重启解决,但不推荐
参考链接: