ubuntu重装nvidia驱动、cuda、cudnn等遇到的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiang_freedom/article/details/91408096

按照其他教程安装基本没有问题,但是前几天升级了一下ubuntu内核,然后TensorFlow报错

ImportError: libnvidia-fatbinaryloader.so.384.130: cannot open shared object file: No such file or directory

看起来是nvidia驱动的问题,可能是因为内核升级导致的,所以打算重装驱动。

重装驱动

先尝试.run安装方式,安装失败:

Failed to run `/sbin/dkms build -m nvidia -v 384.90 -k …

然后用apt-get:

sudo apt-get install nvidia-384

安装成功,但是重启后登陆界面循环。并且报错:

nvidia-smi 未找到命令

怀疑是驱动版本过低,有安装了430:

sudo apt-get install nvidia-430

重启报错:

nvidia driver the system is running in low-graphics mode

无奈又装回了384,这次添加了几个包,没有了登陆循环的问题,且nvidia-smi正常:

sudo apt-get install nvidia-384 nvidia-settings nvidia-prime

可能是因为我电脑是双显卡,所以会有这个问题。


然而再次运行tf程序,仍然报错:

import error:libnppi.so.7.5: cannot open shared object file: No such file or directory

检查了/usr/local/cuda/lib64下确实没有这个so,于是决定重装cuda

重装cuda

先装了cuda 8.0,装完后依然报错:

ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory

虽然cuda的lib里有libcudart.so.8.0,但是为啥要用9.0?全局搜了一下这个文件:

find / -name libcudart.so.9.*

结果:

/home/xxlyu/.cache/bazel/_bazel_xxlyu/8fa709ebf344796d539e4e2cfed28084/execroot/org_tensorflow/bazel-out/k8-opt/bin/tensorflow/cc/ops/candidate_sampling_ops_gen_cc.runfiles/org_tensorflow/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib/libcudart.so.9.0
/home/xxlyu/.cache/bazel/_bazel_xxlyu/8fa709ebf344796d539e4e2cfed28084/execroot/org_tensorflow/bazel-out/k8-opt/bin/tensorflow/cc/ops/candidate_sampling_ops_gen_cc.runfiles/org_tensorflow/external/local_config_cuda/cuda/cuda/lib/libcudart.so.9.0

因为我之前用的是9.0的cuda,估计TensorFlow的缓存没清…懒得管了,还是用原来的9.0吧。重装过程中有报错:

Error: libcudart.so.9.0: cannot open shared object file: No such file or directory

这个so是存在的,环境变量也设置了,原因是没有更新动态链接:

sudo ldconfig /usr/local/cuda/lib64

参考:https://blog.csdn.net/mumoDM/article/details/79502848

后面安装cudnn后,提示找不到libcudnn.so也是同样的解决方法。

猜你喜欢

转载自blog.csdn.net/xiang_freedom/article/details/91408096