1. 程式人生 > >更新cuda,並安裝TensorFlow

更新cuda,並安裝TensorFlow

TensorFlow最新版本目前好像不支援cuda8.0,也不支援cuda10,好不容易終於升級了cuda9.0,終於安裝了TensorFlow1.11.0。特此記錄一下,伺服器Ubuntu14.04.5。

  • CUDA Toolkit下載對應版本Cuda9.0的.run檔案。
  • 根據提示安裝cuda
sudo chmod +x cuda_9.0.176_384.81_linux.run # 為 cuda_9.0.176_384.81_linux.run 新增可執行許可權
./cuda_9.0.176_384.81_linux.run # 安裝 cuda_9.0.176_384.81_linux.run
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n # 如果已經安裝過了,則不需要安裝顯示卡驅動

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-9.0 ]: # 選擇預設即可

/usr/local/cuda-9.0 is not writable.
Do you wish to run the installation with 'sudo'
? (y)es/(n)o: y Please enter your password: Do you want to install a symbolic link at /usr/local/cuda? # 新增軟連結便於切換cuda (y)es/(n)o/(q)uit: y Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: n
sudo tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
  • sudo vim ~/.bashrc 在檔案中新增如下內容,cuda表示之前新增的軟連結。
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
  • source ~/.bashrc 使之生效
  • pip install tensorflow-gpu

如果執行命令nvidia-smi出現:

Failed to initialize NVML: Driver/library version mismatch

可以重啟伺服器,如果不行,重新安裝驅動。
如果TensorFlow執行時出現以下兩種錯誤:

CUDA driver version is insufficient for CUDA runtime version
libnvidia-fatbinaryloader.so.381.22: cannot open shared object file: No such file or directory

可以重新安裝驅動:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375

如需切換cuda,執行:

rm -rf /usr/local/cuda  # 刪除之前建立的軟連結
sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda/
nvcc --version  # 檢視當前 cuda 版本

另外,pycharm遠端連線伺服器時,可能找不到環境變數,在Run/Edit Configurations/下
新增Environment variables:
LD_LIBRARY_PATH=/usr/local/cuda/lib64

參考自以下部落格:

https://blog.csdn.net/Maple2014/article/details/78574275
https://blog.csdn.net/qq_34374211/article/details/81018320
https://www.cnblogs.com/go-better/p/7625541.html
https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch
https://blog.csdn.net/seymour163/article/details/78798419
https://www.jianshu.com/p/385a408024d1