服务器报CUDA error: out of memory
问题:
使用linux服务器运行py程序时,出现RuntimeError: CUDA error: out of memory的错误(但是之前运行这个**python没有问题)
原因:**
服务器的默认gpu显卡正在使用,需要使用gpu的另一个空闲的显卡;linux里查看gpu的显卡使用状态用代码:
nvidia-smi
因为默认的是使用显卡:0,所以可以选择一个空闲的卡
解决:
在.py文件里加入:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = '1'
注意要放在
import torch
之前!!!
之后运行代码就是用的卡1!!!
参考
同时,该文章评论里有大佬解释:
解释下这么做的理由:
CUDA_VISIBLE_DEVICES限制一下使用的GPU。
比如有0,1,2,3号GPU;
CUDA_VISIBLE_DEVICES=2,3;
则当前进程的可见GPU只有物理上的2、3号GPU;
此时它们的编号也对应变成了0、1;
即cuda:0对应2号GPU,cuda:1对应3号GPU。
————————————————
按照博主的教程限定只有1号GPU以后,代码里面cuda编号仍然为0