本篇教學是給初接觸的深度學習小白,本文會完整的介紹安裝顯卡驅動、cuda、cudann的裝載以及卸載方法,什麼!?你說為什麼要學卸載方法,若你是平平穩穩地順利完成所有安裝,那你確實不需要,那假若你安裝過程滿滿的錯誤呢? 又或是你升級一張顯卡後需要重新安裝cuda、cudnn,那麼我可以確切地告訴你卸載你的顯卡驅動並且升級安裝是家常便飯的事,若你是一個完全都不懂的小白,那麼此篇文章就是為你而做的
內容目錄
1.安裝顯卡驅動
首先安裝的就是顯卡的驅動,不同的顯卡就會需要安裝不同的驅動程式,不過驅動通常都是向下兼容的,因此舊顯卡就不太用注意太多,但新顯卡通常就要安裝最新出的驅動版本,但如何知道要安裝哪個版本呢? 通常都是裝最新的那個,不管你是新顯卡、舊顯卡都是可以使用,但如果你需要安裝特定的cuda版本那就需要參照對照表了
舉例來說若你需要安裝cuda 11.4,那麼顯卡驅動版本就至少要>470
顯卡安裝的方式有很多種,這邊介紹兩種方式,一個是GUI 介面安裝,另一個是指令安裝
a.GUI 安裝
到software & updates 點選 additional drivers,選擇需要的版本安裝
b.指令安裝
首先更新顯卡ppa
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
sudo apt upgrade
之後列出目前可以安裝的驅動程式
ubuntu-drivers devices
若剛好指標指向你想安裝的版本那就可以執行自動安裝
sudo ubuntu-drivers autoinstall
或是可以透過指令安裝特定版本
sudo apt install nvidia-driver-510
安裝完重新啟動
reboot
- 驗證驅動程式安裝與否
若有出現以下畫面就代表成功安裝了,右上角顯示的是此驅動程式最高可以支援的cuda版本,若你之後想要安裝11.5,那麼程式肯定會報錯誤(CUDA driver version is insufficient for CUDA runtime version),但在之下都可以,右上角的版本代表driver api version,與之後要安裝的runtime version不相同,也就是說runtime version必須要小於等於driver version
nvidia-smi
- 解除安裝顯卡驅動
apt-get remove –purge nvidia-*
2.安裝 cuda
cuda 是 nvdia顯卡的平行運算API,若您想寫的程式需要利用顯卡進行平行運算那麼就要需安裝cuda來讓你的程式順利執行
到官網選擇需要的cuda版本,這裡以11.3為例子,根據自己的作業系統做選擇,總共有三種安裝方式,這裡僅示範第三種
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
sudo sh cuda_11.3.0_465.19.01_linux.run
把driver 選項拿掉然後安裝
安裝完後的提示,提醒加入環境變數
加入環境變數
sudo gedit ~/.bashrc
開啟文件在最下方加入以下環境變數
export PATH=/usr/local/cuda-11.3/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
好了之後關閉文件然後輸入以下指令讓環境變數更新
source ~/.bashrc
- 驗證cuda 安裝與否
若出現success代表成功安裝
cd /usr/local/cuda-11.3/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
- CUDA多版本切换/管理方式
把路徑都改成軟連接的路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
若要更換版本那麼就換軟連接的位置就好
sudo rm -rf /usr/local/cuda # 刪除舊版本軟連接
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda # 建立新版本的軟連接
- 解除安裝cuda
解除安裝可以使用官方的腳本進行解除安裝
cd /usr/local/cuda-11.3/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-11.3
3.安裝cudnn
cudnn 是cuda 中在更專門的對於深度學習訓練框架所寫的api,就好像是要把一張紙剪成兩半的任務,cuda 就像一把美工刀他可以順利的執行任務,但是cudnn就更像是剪刀可以更快速的執行把紙剪成兩半的工作
一樣至官網選擇所需要的版本,由於我剛剛是安裝cuda 11.3,因此要選擇支援11.3的,這裡我選擇安裝cudnn8.2.1,有兩種安裝方式,一種是tar解壓縮安裝,一種是deb安裝,我建議是使用第二種,因為第一種安裝方式並不會安裝code samples,因此無法測試是否安裝成功
tar 安裝
使用tar方式安裝就是把下載下來的包解壓縮然後丟進cuda的安裝路徑下即可,cp前面代表安裝包的路徑,cp後面代表系統安裝cuda的路徑
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
deb 安裝
# install runtime library
sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
# install developer library
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda11.3_amd64.deb
# insall code sample
sudo dpkg -i libcudnn8-samples_8.2.1.32-1+cuda11.3_amd64.deb
- 測試cudnn 安裝成功與否
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd ~/cudnn_samples_v8/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
- 解除安裝cudnn
解除安裝方式就把cuda中有關cudnn的程式碼移除即可
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
參考資料
https://blog.csdn.net/weixin_33158887/article/details/112296197
https://blog.csdn.net/kz_java/article/details/122067916
好棒的文章~謝謝