RuntimeError: CUDA error: out of memory CUDA kernel errors might be 问题解决
今天运行代码时,一直报内存溢出的错误,但是查看gpu使用情况发现内存根本没跑满,服务器上有四张卡,我使用的第一张卡*(本以为),写了下面的代码以为就可以只使用第一张卡了:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)
监控运行情况命令:
watch -n 1 nvidia-smi
之后我又切换到第四张卡,发现运行时第一张卡还是会被用到一点,意识到自己的方法有错误,于是查找到以下方法:
import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
在开头加上这个就可以限制只在第一张卡上运行了,然后果然利用率上去了,也没有爆内存。