前言
今天查看服务器一个使用了pytorch的项目升级后突然出错。报错的全内容由于标题限制,下面我发出来。
builtins.RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero.
报错截图
后来查阅了一些资料,下面说下几种解决方法。
解决方法
方案1:添加环境变量
由于我是docker容器启动项目,所以进入容器后安装完vim,然后在~/.bashrc最后添加了一下内容。
export CUDA_VISIBLE_DEVICES=0
由于在构建容器的时候选的显卡编号为0,所以上面我配置的编号为0。
重启容器后检查$ CUDA_VISIBLE_DEVICES输出正常,但是没有解决问题,报错依旧。
方案2:代码添加环境变量
在初始化cuda区域最开始添加一下代码。
import os
os.environ['CUDA_VISIBLE_DEVICES'] =‘0’
还是没有解决问题。
方案3:重启服务器
参考了一些文章,提到了如果系统升级了显卡驱动而没有重启的话,也会导致同样的报错。
所以重启了一下服务器,问题解决。
总结
3种方案虽然只有最后一个解决了问题,但是可能因为我的情况特殊。给自己解决过程留个记录,顺便分享一下。