文章目錄
- Ubuntu18.04安裝cuDNN和Tensorflow的正確姿勢
- 一、檢查NVIDIA驅動是否安裝成功
- 二、檢查CUDA是否安裝成功
- 三、安裝cuDNN
- 1. 確定版本
- 2. 下載安裝包
- 3. 解壓安裝
- 4. 安裝libcupti
- 四、安裝Tensorflow
- 1. 確定版本
- 2. 安裝pip
- 3. 安裝Tensorflow
- 4. 檢查是否正常運行
- 五、錯誤解決
- 1. so文件找不到的錯誤
- 2. 安裝Tensorflow時報錯
- 3. error: invalid command 'bdist_wheel'
Ubuntu18.04安裝cuDNN和Tensorflow的正確姿勢
本文章主要講解 ubuntu 系統如何正確安裝 cuDNN 和 Tensorflow。
需要提前準備:
- 一個安裝好的Ubuntu 18.04
- NVIDIA 驅動已經安裝成功
- CUDA已經安裝成功
一、檢查NVIDIA驅動是否安裝成功
打開終端執行:
nvidia-smi
Wed Jul 10 11:49:26 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 208... Off | 00000000:42:00.0 On | N/A |
| 0% 42C P8 17W / 300W | 309MiB / 11011MiB | 0% Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1520 G /usr/lib/xorg/Xorg 18MiB |
| 0 1626 G /usr/bin/gnome-shell 79MiB |
| 0 7641 G /usr/lib/xorg/Xorg 95MiB |
| 0 7772 G /usr/bin/gnome-shell 113MiB |
+----------------------------------------------------------------------------
如果出現上面的結果說明成功。如果沒有安裝請參考這篇文章Linux安裝NVIDIA顯卡驅動的正確姿勢或這篇文章Ubuntu 18.04安裝NVIDIA(英偉達) RTX2080Ti顯卡進行安裝。
二、檢查CUDA是否安裝成功
關于 CUDA 的安裝可以參考
Linux安裝CUDA的正確姿勢這篇文章。
打開終端執行:
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
說明CUDA的命令已經安裝成功。接下來測試案例是否能夠正常運行。
#編譯并測試設備 deviceQuery:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery#編譯并測試帶寬 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest
如果這兩個測試的最后結果都是Result = PASS,說明 CUDA 安裝成功啦。
三、安裝cuDNN
1. 確定版本
在安裝之前需要參考與Tensorflow的支持關系,可以通過這個網址查看。
因為目前本地安裝的環境如下:
- Ubuntu 18.04
- NVIDIA Driver 430.26
- CUDA 10.1
所以推薦安裝 cuDNN 7.6.0 版本,并配合 Tensorflow 1.13.0/1.14.0 都可以。
2. 下載安裝包
下載地址可以在NVIDIA官網下載。要下載 cuDNN Library for Linux
這項。
3. 解壓安裝
打開終端執行:
tar -zxvf cudnn-10.1-linux-x64-v7.6.0.64.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include/# 為所有用戶設置讀取權限
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
4. 安裝libcupti
這是 NVIDIA CUDA 分析工具接口,此庫提供高級分析支持。
打開終端執行:
sudo apt-get install libcupti-dev
四、安裝Tensorflow
1. 確定版本
由于上一步我們選擇安裝了 cnDNN 7.6.0 并且是配合 CUDA 10.1,所以從這個網址我們可以得知,可以安裝最高版本 Tensorflow 1.13.0。
2. 安裝pip
大家可以根據實際情況進行選擇是安裝 pip 還是 pip3,本文以 pip3 為例子。
sudo apt-get install python3-dev python3-pip
此時 pip3 已經安裝成功。
3. 安裝Tensorflow
終端執行:
pip3 install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-linux_x86_64.whl
關于下載的連接可以參考官方網址。
此步驟可能會很慢,如果有代理的可以提前設置好代理。
4. 檢查是否正常運行
以下兩個測試可以直接在終端內復制執行。
測試 1:
python3 -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
測試 2:
python3 -c "from tensorflow.python.client import device_lib; device_lib.list_local_devices()"
如果以上兩條返回的內容中都沒有錯誤,代表Tensorflow安裝成功。
五、錯誤解決
1. so文件找不到的錯誤
錯誤例子如下:
2019-07-10 11:26:57.200271: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64::/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64{LD_LIBRARY_PATH:+:/usr/local/cuda-10.1/lib64}}:/usr/local/cuda-10.1/lib64:/usr/local/cuda-10.1/lib
主要錯誤信息為Could not dlopen library 'libcublas.so.10.0'
。造成這樣的原因是鏈接文件不對造成的。
這種問題很好解決,下面我羅列一些常發生這樣錯誤的so文件解決辦法,首先大家要確定報錯的so文件名稱是什么,例如上面報錯的是libcublas.so.10.0
這個文件,那么就找到對應的libcublas
庫文件,然后在/usr/local/cuda-10.1/lib64/
目錄下創建一個bcublas.so.10.0
連接文件即可。
一般缺失的so文件都在/usr/local/cuda-10.1/lib64/
目錄下,有一些特別的在/usr/lib/x86_64-linux-gnu/
目錄下。
- libcudart
sudo ln -s /usr/local/cuda-10.1/lib64/libcudart.so.10.1 /usr/local/cuda-10.1/lib64/libcudart.so.10.0
- libcufft
sudo ln -s /usr/local/cuda-10.1/lib64/libcufft.so.10.1.168 /usr/local/cuda-10.1/lib64/libcufft.so.10.0
- libcurand
sudo ln -s /usr/local/cuda-10.1/lib64/libcurand.so.10.1.168 /usr/local/cuda-10.1/lib64/libcurand.so.10.0
- libcusolver
sudo ln -s /usr/local/cuda-10.1/lib64/libcusolver.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusolver.so.10.0
- libcusparse
sudo ln -s /usr/local/cuda-10.1/lib64/libcusparse.so.10.1.168 /usr/local/cuda-10.1/lib64/libcusparse.so.10.0
- libcublas
如果sudo ln -s /usr/lib/x86_64-linux-gnu/libcublas.so.10.2.0.168 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
/usr/lib/x86_64-linux-gnu/
目錄下沒有libcublas
庫,可以在/usr/local/cuda10.1/targets/x86_64-linux/lib/
查找libcublas
庫。
2. 安裝Tensorflow時報錯
python setup.py egg_info
如果錯誤如下:
Complete output from command python setup.py egg_info:Traceback (most recent call last):File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'setuptools'----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-szai5bvj/absl-py/
解決辦法為安裝setuptools
pip3 install --upgrade setuptools
然后重新安裝Tensorfow。
3. error: invalid command ‘bdist_wheel’
如果遇到此錯誤:
pip3 install wheel
然后重新安裝Tensorfow。
END