天天看點

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.<yournvidia.version> 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:解決方式

第一個就是程式要讀取打開的.so.1檔案,第二個是我GPU實際上對應的版本,第三個是原來對應的版本 

Couldn‘t open CUDA library libcuda.so.1. LD_LIBRARY_PATH:解決方式

 簡化一下答案:

# 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.<yournvidia.version> libcuda.so.1

# 如我的NVIDIA版本是 410.78,指令行為

#sudo ln -f -s libcuda.so.410.78 libcuda.so.1

有個情況就是,我昨天設定的對應版本,機器沒有重新開機,但是so.1卻又回到了以前的狀态了,即.so.1又指向了libcuda.so.430.64版本,這個有待解決

繼續閱讀