Couldn't open CUDA library libcuda.so.1. LD_LIBRARY_PATH:解决方式

参考 :https://stackoverflow.com/questions/41890549/tensorflow-cannot-open-libcuda-so-1

Linux (Ubuntu)下使用NVIDIA GPU来 运行TensorFlow,在安装好驱动、CUDA 和 cudnn之后,在运行tensorflow时,其他的.so文件能够运行,而libcuda.so.1文件提示打不开,

Couldn't open CUDA library libcuda.so.1. LD_LIBRARY_PATH:

原因:

先说下这个文件在哪,安装cudnn的时候提供的那些.so文件里面没有这个 libcuda.so.1.文件的,这个文件实际上在

/usr/lib/x86_64-linux-gnu 里面。而这个文件并不是真正library(这个我也不知道)。反正他指向NVIDIA GPU的驱动版本对应的.so文件,我们需要重新将这个文件对应到我们GPU实际的驱动版本.so文件。具体处理如下:

# See where the link is pointing.查看链接指向  
ls  /usr/lib/x86_64-linux-gnu/libcuda.so.1 -la
# My result:
# lrwxrwxrwx 1 root root 19 Feb 22 20:40 \
# /usr/lib/x86_64-linux-gnu/libcuda.so.1 -> ./libcuda.so.375.39

# Make sure it is pointing to the right version. 查看NVIDIA驱动真正使用的版本
# Compare it with the installed NVIDIA driver.
nvidia-smi

# Replace libcuda.so.1 with a link to the correct version,如果版本不对应的话,就要将链接重新对应上去
cd /usr/lib/x86_64-linux-gnu
sudo ln -f -s libcuda.so. libcuda.so.1
# 如我的NVIDIA版本是 384.130,命令行为
#sudo ln -f -s libcuda.so.384.130 libcuda.so.1

 Couldn't open CUDA library libcuda.so.1. LD_LIBRARY_PATH:解决方式_第1张图片

第一个就是程序要读取打开的.so.1文件,第二个是我GPU实际上对应的版本,第三个是原来对应的版本 

 Couldn't open CUDA library libcuda.so.1. LD_LIBRARY_PATH:解决方式_第2张图片

 简化一下答案:

# 1 查看链接指向  
ls  /usr/lib/x86_64-linux-gnu/libcuda.so.1 -la

# 2 查看NVIDIA驱动真正使用的版本
nvidia-smi

# 3 如果版本不对应的话,就要将链接重新对应上去
cd /usr/lib/x86_64-linux-gnu
sudo ln -f -s libcuda.so. libcuda.so.1
# 如我的NVIDIA版本是 384.130,命令行为
#sudo ln -f -s libcuda.so.384.130 libcuda.so.1

有个情况就是,我昨天设置的对应版本,机器没有重启,但是so.1却又回到了以前的状态了,即.so.1又指向了libcuda.so.430.64版本,这个有待解决

你可能感兴趣的:(TensorFlow,NVIDIA)