问题
- 这台服务器我已经好久没连接了,自己在配新的conda环境的时候一直无法调用GPU
- torch.cuda.is_available()返回false
- torch.backends.cudnn.enabled返回True
- nvidia-smi能正常返回
- 当时一直在考虑是不是自己环境这边没配好,后来用师兄的账号登了一下,发现他的torch也调用不了GPU了,并且之前正在运行的代码报错 cuda runtime error:
- 判断是服务器的cuda或者显卡驱动的问题
排查
- 当时考虑了以下几点
- 装的torch版本支持的是10.1的cuda
- 因为服务器装了多个cuda版本(9.0和10.1)
- 查了软连接,发现默认确实是指向10.1,并且最近没有发生修改 (cd到 /usr/local 再 stat cuda)
- 检查环境变量,也是配置的10.1
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
解决
服务器的用户比较多 也不太好逐一排查是谁有意无意的操作…
和师兄讨论了一下,感觉cuda应该没什么问题,可能是显卡驱动的问题
怀疑是不是显卡驱动自己悄悄更新了,但发现版本号并没有变化,排除。
重新安装驱动 NVIDIA-Linux-x86_64-418.87.01.run
服务器重启之后就OK了