JasonLuo's Blog JasonLuo's Blog
June 7, 2020

Nvidia, Cuda安裝

Posted on June 7, 2020  •  4 minutes  • 1523 words

update at 2020 2/26 by JasonLuo test on Ubuntu 16.04 install Nvidia Driver 440.59, Cuda 10.1, Cudnn 7.6.5 compatible with tensorflow-gpu 2.1

因為deep learning的套件更新速度很快,有時更新DL套件後相對應的cuda, nvidia driver也需要重新安裝,因此在這邊紀錄一下如何install, uninstall這些東西

Nvidia Driver

安裝之前

  1. 首先,檢查顯卡是否可用lspci -nnk | grep -i nvidia,應出現下面這些
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1b82] (rev a1)
     Kernel driver in use: nvidia
     Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
    01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10f0] (rev a1)
    02:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1b82] (rev a1)
     Kernel driver in use: nvidia
     Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
    02:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10f0] (rev a1)
  1. 檢查是否已有安裝driver,可使用nvidia-smi或是dpkg -l ‘nvidia*‘檢查

    • nvidia-smi除了可以檢查是否有安裝,同時也可以看到一些資訊(使用數據量,driver版本等)

    • dpkg -l nvidia*

  2. 下載Nvidia Driver,到官網下載

解安裝Nvidia Driver

  1. 解除安裝之前先進入command prompt然後stop running Graphics session (此步驟可省略)
    • 按下 [Ctrl]+[Alt]+[F1~F6] 然後登入作業系統
    • 關閉Graphics Session sudo service lightdm stop (For Ubuntu)
  2. 卸載Nvidia Driver,下面三個步驟選其中一個
    • sudo apt-get purge nvidia*
    • sudo /usr/bin/nvidia-uninstall
    • sudo NVIDIA-Linux-x86_64-418.43.run –uninstall
  3. 重新開機
    • reboot

安裝Nvidia Driver

  1. 安裝之前先進入command prompt然後stop running Graphics session

    • 按下 [Ctrl]+[Alt]+[F1~F6] 然後登入作業系統
    • 關閉Graphics Session sudo service lightdm stop (For Ubuntu)
  2. 安裝Nvidia Driver

    • sudo chmod +x NVIDIA-Linux-x86_64-XXX.run (在官網下載的檔案)
    • sudo NVIDIA-Linux-x86_64-XXX.run
  3. 重新啟動電腦

    • reboot
  4. 確認套件是否已經安裝

    • dpkg -l nvidia*
    • nvidia-smi

Cuda

安裝之前

  1. 如何確認電腦上的Cuda版本
    • cat /usr/local/cuda/version.txt
    • nvcc -V
  2. 下載cuda,到官網下載cuda 10.1,選哪種下載都可以,我這邊是選擇runfile(local) or 用wget

移除Cuda

  1. 移除舊版cuda,下面選一種(確保沒有/usr/local/cuda-XX.X資料夾)
    • sudo apt-get --purge remove 'cuda*'
    • sudo apt-get autoremove --purge cuda
    • sudo /usr/local/cuda-10.2/bin/cuda-uninstaller 官網上寫的,cuda-10.2換成自己的版本

安裝Cuda

  1. 開始安裝Cuda (記得先用chmod +x讓檔案可以執行,前面兩種不適用跑_linux檔的)

    1. sudo ./cuda_10.1.105_418.39_linux.run --driver --silent
    2. sudo ./cuda_10.1.105_418.39_linux.run --toolkit --silent
    3. sudo ./cuda_10.1.105_418.39_linux.run --samples --silent
  2. 注意!! 如果/tmp資料夾容量不夠時會不能安裝,需要給tmpdir=[YourDirectory]的參數,這邊我是給/home/tmp,所以上面的command會變成,同時/home/tmp要是chmod 777:

    1. sudo ./cuda_10.1.105_418.39_linux.run --driver --silent --tmpdir=/home/tmp
    2. sudo ./cuda_10.1.105_418.39_linux.run --toolkit --silent --tmpdir=/home/tmp
    3. sudo ./cuda_10.1.105_418.39_linux.run --samples --silent --tmpdir=/home/tmp
  3. 安裝時若出現Missing recommended library:libGLU.so,則進行下面命令:

    • sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev
  4. 安裝Cuda之後,需要將cuda路徑加入 ~/.bashrc 當中:

    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/64:$LD_LIBRARY_PATH
    
  5. 然後,source ~/.bashrc

  6. 使用nvcc -V檢查是否安裝成功

Cudnn (可以加速的套件)

安裝之前

  1. 檢查主機上是否有cudnn及版本多少 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  2. 官網下載Cudnn,要下載CuDNN需要登錄,登錄後找尋與已安裝好的cuda版本相容的CuDNN(e.g. cuDNN v7.3.1 Library for Linux)

tensorflow2.0需要v7.6以上的版本

刪除Cudnn

  1. 刪除相關檔案,通常會在/usr/local/cuda/include//usr/local/cuda/lib64/資料夾中
    1. sudo rm -f /usr/local/cuda/include/*cudnn*
    2. sudo rm -f /usr/local/cuda/lib64/*cudnn*

安裝cudnn

  1. 下載之後進行解打包、壓縮

    • tar -xvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
  2. 解完打包壓縮之後可以發現有個cuda的文件夾,裡面會有

    • cuda/include
    • cuda/lib64
    • cuda/NVIDIA_SLA_cuDNN_Support.txt
  3. 複製檔案到cuda資料夾中

    • sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
    • sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/
  4. 檢測Cudnn - 到cudnn_samples_v7檢測

TensorRT (optional)

跟libnvinfer.so.6, libnvinfer_plugin.so.6的檔案有關

安裝

  1. 下載TensorRT,同樣也需要先登錄才能下載

  2. 下載tar文件,並選擇相對應的系統

  3. 解壓縮tar.gz檔案

    • tar xzvf TensorRT-XXXXXXXXXXXXXX.tar
  4. 將路徑加入LD_LIBRARY_PATH

    • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/TC184610137/TensorRT-4.0.2.6/lib
  5. 安裝TensorRT, uff, raphsurgeon

    cd TensorRT-XXXX/python
    sudo pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl
    
    ## install uff
    cd TensorRT-XXXX/uff
    pip install uff-0.6.5-py2.py3-none-any.whl
    
    ## install graphsurgeon
    cd TensorRT-XXXX/graphsurgeon
    pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
    
  6. 測試:

    import tensorrt as trt
    import uff as uff
    

Ref:


comments powered by Disqus
Follow me

Now, I work in a weather company to develop ML/DL projects