之前在ubuntu18.04上跑pytorch,因为pytorch支持到9.2,而cuda从10开始才支持ubuntu18.04,所以我选了cuda9.0和nvidia-390。
有一天按系统推荐更新了软件,再次运行深度学习网络程序就报错了
试了下nvidia-smi,出现标题中的错误
当时没搞明白发生了什么,一通操作最后重装系统,再装上cuda9.0和nvidia-390还是能用。
后来回想可能是软件更新里有点nvidia的东西
今天又碰到这个报错了,考虑一下应该是驱动问题,检查一下版本没问题,找不到原因。google找到一篇参考资料https://devtalk.nvidia.com/default/topic/1000340/cuda-setup-and-installation/-quot-nvidia-smi-has-failed-because-it-couldn-t-communicate-with-the-nvidia-driver-quot-ubuntu-16-04/1
上面讲是版本冲突,卸干净重装就好。虽然我不是版本冲突,但是至少知道了卸干净重装是可以解决问题的。
于是
sudo apt remove --purge nvidia-*
再到/usr/local/手动删除cuda的文件夹和软链
(为什么不用自带的卸载脚本呢,因为cuda的脚本不见了,nvidia的符号链接指向无效文件。后来我实验了一下,照官网装好的时候就这个样,估计是跟18.04不太兼容?另外卸载一定要慎重, 上次我乱卸载把系统的东西删了,不得不重装了……)
然后再装,cuda自带驱动,所以按官网指南装cuda就好了
装完试一下nvidia-smi,还是报错。后来发现得重启一下,搞定。