1. 程式人生 > 其它 >Ubuntu18.04 Tensorflow-gpu==1.14安裝

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 檔案,複製:
  1. 解壓 sudo tar -xvf cudnn-10.0-linux-x64-v7.6.5.32.tgz

  2. 複製檔案

    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*
    
  3. 測試

     cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  #檢視cudnn的版本
    
方案二:下載DEB檔案,並安裝(建議ubuntu使用者使用該方案):
  1. 下載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程式碼樣本和使用者指引
    
  2. 測試

     # 測試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

  1. 安裝步驟

    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 
    
  2. 源設定

    1. 首先將對應映象源的地址通過 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 對應的地址
      
    2. 通過 conda config 命令設定使用 conda 進行軟體包下載時顯示軟體包的 url 地址,這樣就可以看到下載軟體包的時候是否是從國內映象源下載。具體命令為 conda config --set show_channel_urls yes。(Windows 環境中使用者主目錄下會生成對應的 .condarc 檔案,裡面儲存一些與源相關的資訊)

      conda config --set show_channel_urls yes #下載時顯示軟體包的來源

    3. 通過 conda config --show-sources 命令檢視新增的軟體源,確定是否新增有效。

      conda config --show-sources #檢視已有的軟體源


Tensorflow

  1. 安裝

    pip install tensorflow==1.14.0
    pip install tensorflow-gpu==1.14.0
    
  2. 測試

    # python環境
    import tensorflow as tf
    tf.test.is_gpu_available()
    # 最後顯示True即可呼叫gpu
    

奇奇怪怪的問題

  1. 設定固定IP後,修改DNS

  2. sudo make 報錯 g++: No such file or directory
    缺少配置g++

  3. anaconda無許可權

    開放anaconda安裝資料夾許可權: sudo chown -R user /home/ubuntu/anaconda3

  4. WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly.

    • 缺少cuda軟連結
    • sudo ln -s cuda-10.0/ cuda
  5. pip No such file or directory: ‘c++’

    嘗試升級pip版本

  6. 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

    • tensorflownumpycudacudnn
      1.141.16.010.07.6.4
  7. WARNING:root:Limited tf.compat.v2.summary API due to missing TensorBoard installation.

    重新安裝tensorboard


總結

  • 注意版本對齊:nvidia、cuda、cudn、gcc、tensorflow、numpy TF官方版本
  • 期間很多奇奇怪怪問題,多查查資料就行啦

參考

Tensorflow

NVIDIA CUDNN DOCUMENTATION

ubuntu18.04安裝tensorflow-gpu==1.14.0(CUDA10.0+cuDNN7.4.1)

Ubuntu18.04安裝tensorflow-gpu(2019.7新版cuDNN-7.6.2)

Ubuntu下安裝INVIDIA顯示卡驅動(避免迴圈登入問題)

Ubuntu18.04安裝CUDA10、CUDNN

另附

安裝docker-ce和nvidia-docker2