Ubuntu18.04 Tensorflow-gpu==1.14安裝
技術標籤:基礎環境構建ubuntucudatensorflowcudnnlinux
版本資訊
系統版本:ubuntu 18.04
系統架構:x86_64
nvidia driver 驅動版本:NVIDIA-Linux-x86_64-440.100 (GPU:2080TI)
CUDA版本:10.0
cuDNN:7.6.4
gcc:4.8.5
tensorflow-gpu:1.14.0
nvidia
禁用nouveau
sudo vim /etc/modprobe.d/blacklist.conf
在文字最後新增:
blacklist nouveau
options nouveau modeset=0
然後執行:sudo update-initramfs -u
重啟機器後,執行以下命令,如果沒有螢幕輸出,說明禁用nouveau成功:lsmod | grep nouveau
驅動下載
官網下載地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
解除安裝舊驅動
重啟後,使用快捷鍵進入文字模式,然後輸入使用者名稱密碼就可:Ctrl-Alt+F1
|| 或使用SSH連線
執行以下命令禁用X-Window服務,否則無法安裝顯示卡驅動:sudo service lightdm stop
|| 有可能沒安裝lightdm,則直接跳過
執行以下命令解除安裝原有顯示卡驅動:注意匹配自己下載的驅動版本
sudo apt-get remove --purge nvidia* sudo apt-get autoremove sudo chmod +x NVIDIA-Linux-x86_64-4**.**.run # 源顯示卡驅動 sudo ./NVIDIA-Linux-x86_64-4**.**.run --uninstall # 預設即可
重啟
安裝新驅動
執行驅動檔案即可安裝新驅動,一直預設即可:
sudo ./NVIDIA-Linux-x86_64-440.100.run -no-opengl-files
執行以下命令啟動X-Window服務
sudo service lightdm start
最後執行重啟命令,重啟系統:
sudo reboot
gcc
檢視gcc版本:gcc --version
若gcc版本太高就更改版本:sudo apt-get install gcc-4.8 g++-4.8
切換gcc版本:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
啟用生效:
sudo update-alternatives --config gcc
CUDA
驅動下載
- 下載地址:https://developer.nvidia.com/rdp/cudnn-archive
驅動安裝
-
sudo chmod a+x ....run
-
sudo ./...run
Do you accept the previously read EULA? # ctrl+c 可加快速度 accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48? (y)es/(n)o/(q)uit: n Install the CUDA 10.0 Toolkit? (y)es/(n)o/(q)uit: y Enter Toolkit Location [ default is /usr/local/cuda-10.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 10.0 Samples? (y)es/(n)o/(q)uit: y Enter CUDA Samples Location [ default is /home/user ]:
# 安裝結果 - Driver: Not Selected Toolkit: Installed in /usr/local/cuda-10.0 Samples: Installed in /home/***, but missing recommended libraries Please make sure that - PATH includes /usr/local/cuda-10.0/bin - LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-10.0/bin
-
新增環境變數
-
vim ~/.bashrc
# >>> coda initialize >>> export PATH="/usr/local/cuda-10.0/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64/:$LD_LIBRARY_PATH" # <<< coda initialize <<<
-
啟用生效:
source ~/.bashrc
-
nvcc --version
檢視版本資訊是否一致
-
-
測試
cd ~/NVIDIA_CUDA-10.0_Samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
- 顯示PASS即通過
CUDNN
驅動下載
下載地址:https://developer.nvidia.com/rdp/cudnn-archive
驅動安裝
方案一:下載.tgz 檔案,複製:
-
解壓
sudo tar -xvf cudnn-10.0-linux-x64-v7.6.5.32.tgz
-
複製檔案
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
-
測試
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #檢視cudnn的版本
方案二:下載DEB檔案,並安裝(建議ubuntu使用者使用該方案):
-
下載cudnn DEB檔案 安裝
sudo dpkg -i libcudnn7_7.6.4.38-1+cuda10.0_amd64.deb #安裝cudnn-runtime庫 sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda10.0_amd64.deb #安裝cudnn-developer庫 sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda10.0_amd64.deb #安裝cudnn程式碼樣本和使用者指引
-
測試
# 測試cudnn cp -r /usr/src/cudnn_samples_v7/ $HOME #拷貝測試樣例到主資料夾 cd $HOME/cudnn_samples_v7/mnistCUDNN #進入樣例下的mnistCUDNN目錄 make clean && make #編譯mnistCUDNN樣例 ./mnistCUDNN #執行編譯好的mnistCUDNN樣例 # Test passed 即為通過
make過程中如遇到
WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly.-->
,可能沒建立cuda資料夾的軟連線,如檢查缺失沒有,sudo ln -s cuda-10.0/ cuda
建立軟連線重試即可
Anaconda
-
安裝步驟
sudo sh A...sh Do you accept the license terms? [yes|no] yes path choose default by running conda init? [yes|no] yes source ~/.bashrc
-
-
首先將對應映象源的地址通過 conda config --add 命令加入 conda 的 channel 列表中,可以選擇新增整個映象源的地址或只新增與 pytorch 相關的映象源的地址。(或者更傻瓜的方式,將 ~/.condarc 檔案備份後,將清華 Anaconda 映象源頁面中的配置檔案內容複製至 ~/.condarc 檔案中)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ #新增整個映象源的地址 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ #新增映象源中 pytorch 對應的地址
-
通過 conda config 命令設定使用 conda 進行軟體包下載時顯示軟體包的 url 地址,這樣就可以看到下載軟體包的時候是否是從國內映象源下載。具體命令為 conda config --set show_channel_urls yes。(Windows 環境中使用者主目錄下會生成對應的 .condarc 檔案,裡面儲存一些與源相關的資訊)
conda config --set show_channel_urls yes #下載時顯示軟體包的來源
-
通過 conda config --show-sources 命令檢視新增的軟體源,確定是否新增有效。
conda config --show-sources #檢視已有的軟體源
-
Tensorflow
-
安裝
pip install tensorflow==1.14.0 pip install tensorflow-gpu==1.14.0
-
測試
# python環境 import tensorflow as tf tf.test.is_gpu_available() # 最後顯示True即可呼叫gpu
奇奇怪怪的問題
-
sudo make 報錯 g++: No such file or directory
缺少配置g++ -
anaconda無許可權
開放anaconda安裝資料夾許可權:
sudo chown -R user /home/ubuntu/anaconda3
-
WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly.
- 缺少cuda軟連結
sudo ln -s cuda-10.0/ cuda
-
pip No such file or directory: ‘c++’
嘗試升級pip版本
-
numpy與tensorflow版本問題
-
警告資訊: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
-
pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple numpy==1.16.0
-
tensorflow numpy cuda cudnn 1.14 1.16.0 10.0 7.6.4
-
-
WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.
重新安裝tensorboard
總結
- 注意版本對齊:nvidia、cuda、cudn、gcc、tensorflow、numpy TF官方版本
- 期間很多奇奇怪怪問題,多查查資料就行啦
參考
ubuntu18.04安裝tensorflow-gpu==1.14.0(CUDA10.0+cuDNN7.4.1)
Ubuntu18.04安裝tensorflow-gpu(2019.7新版cuDNN-7.6.2)
Ubuntu下安裝INVIDIA顯示卡驅動(避免迴圈登入問題)