# Ubuntu 18.04 NVIDIA顯示卡驅動和CUDA安裝 ###### tags: `Installation Guide` `Ubuntu` ## 問題描述 NVIDIA顯示卡驅動安裝有許多方法,透過官網下載、透過apt-get安裝或是使用autoinstall安裝。Ubuntu 18.04允許我們可以使用autoinstall直接安裝預設的顯示卡驅動版本,透過更新顯示卡驅動的PPA來獲得最新的版本。 ## 準備工具 - Ubuntu 18.04 - NVIDIA顯示卡 - 良好的網路環境 ## 顯示卡驅動安裝 首先開啟`Terminal`,安裝驅動之前先將`apt`更新: ```=Ubuntu 18.04 $sudo apt-get update $sudo apt-get upgrade ``` 首先安裝Python3相關的套件和編譯器 ```=Ubuntu 18.04 $sudo apt-get install python3-pip python3-dev python3-tk python-imaging-tk python3 $sudo apt-get install gcc g++ unzip pkg-config screen cmake build-essential ``` 若需要使用影像相關的套件可以複製下列的指令 ```=Ubuntu 18.04 $sudo apt-get install libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev $sudo apt-get install libjpeg-dev libpng-dev libtiff-dev $sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev $sudo apt-get install libxvidcore-dev libx264-dev $sudo apt-get install libopenblas-dev libatlas-base-dev liblapack-dev gfortran $sudo apt-get install libhdf5-serial-dev $sudo apt-get install libgtk-3-dev ``` 安裝完後可以使用下列指令查詢NVIDIA顯示卡狀態 ```=Ubuntu 18.04 $sudo lspci | grep -i nvidia ``` 更新顯示卡驅動PPA ```=Ubuntu 18.04 $sudo add-apt-repository ppa:graphics-drivers/ppa $sudo apt-get update ``` 更新完後可以在`ubuntu-drivers`查看符合的驅動和建議 ```=Ubuntu 18.04 $ubuntu-drivers devices ``` 確認`recommend`的版本符合需求後直接使用`autoinstall`安裝 ```=Ubuntu 18.04 $sudo ubuntu-drivers autoinstall ``` 若需要手動選擇版本可以使用`apt`安裝 ```=Ubuntu 18.04 $sudo apt-get install nvidia-driver-450 //450為版本號 ``` 安裝完成重新啟動電腦,輸入`nvidia-smi`查看顯示卡狀態 ```=Ubuntu 18.04 $nvidia-smi ``` ## CUDA (10以上)和cuDNN (7.3以上)安裝 ### 下載並安裝CUDA 首先去NVIDIA官方網站下載[CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit-archive),選擇正確的版本和作業系統後下載`runfile`的格式。本篇使用CUDA 10.0作為範例說明安裝流程。 下載完後開啟`Terminal`進到與檔案相同的路徑下,並更改CUDA安裝檔的權限為可執行,並使用`sh`執行安裝檔 ```=Ubuntu 18.04 $sudo chmod a+x <download_cuda_filename>.run $sudo sh ./<download_cuda_filename>.run ``` 執行後一開始會跑出合約,按下`q`後輸入`accept`同意合約內容。接著出現安裝選單,利用`空白建`選定和取消選項。第一個安裝顯示卡驅動的選項可以取消勾選,因前步驟已經安裝過不需要再安裝一次,最後選擇執行開始安裝。 安裝完成後打開位於`~`的`.bashrc`檔案,載檔案的最末端輸入環境變數 ```=Ubuntu 18.04 $sudo gedit ~/.bashrc //開啟圖形化編輯視窗 開啟完成後在最末端輸入下列3行 export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin:${PATH} 輸入完後儲存關閉圖形化視窗並接著啟用檔案 $source ~/.bashrc ``` 完成後重新開機,使用`nvcc`查看CUDA安裝狀態,若出現版本號表示安裝成功 ```=Ubuntu 18.04 $nvcc -V ``` ### 下載並安裝cuDNN 首先去NVIDIA官方網站下載[cuDNN](https://developer.nvidia.com/rdp/cudnn-archive),下載cuDNN時需要注意Ubuntu的版本和CUDA版本,並且下載`Runtime`、`Developer`和`Samples`等3個函式庫。本篇使用cuDNN 7.4作為範例說明安裝流程。 下載完後開啟`Terminal`進到與檔案相同的路徑下,使用`dpkg`依序安裝`cudnn`、`-dev`和`-doc` ```=Ubuntu 18.04 $sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb $sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb $sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb ``` 安裝完成後可以到`/usr/src/<cudnn sample>`中,make範例程式執行測試 ## CUDA解除安裝 ```=Ubuntu 18.04 -使用uninstall程式移除CUDA $sudo /usr/local/cuda/bin/cuda-uninstaller -使用apt移除CUDA(官方) $sudo apt-get --purge remove "*cublas*" "cuda*" ``` ## 顯示卡驅動解除安裝 ```=Ubuntu 18.04 -使用uninstall程式移除NVIDIA驅動程式 $sudo /usr/bin/nvidia-uninstall -使用uninstall程式移除NVIDIA驅動程式(使用autoinstall安裝驅動時使用) $ sudo apt-get remove --purge nvidia-* $ sudo apt-get autoremove -用apt移除NVIDIA驅動程式(官方) $sudo apt-get --purge remove "*nvidia*" -使用apt移除NVIDIA驅動程式(第三方) $sudo apt-get remove --purge '^nvidia-.*' $sudo apt-get install ubuntu-desktop $sudo rm /etc/X11/xorg.conf $echo 'nouveau' | sudo tee -a /etc/modules ``` ## 參考文獻 https://gist.github.com/andyweizhao/639e94b60c166f57964aafedeb465e90 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html https://linuxhint.com/ubuntu_nvidia_ppa/ https://hackmd.io/@kcchien/BJzHPQdSN?type=view https://www.pyimagesearch.com/2019/12/09/how-to-install-tensorflow-2-0-on-ubuntu/