搭建cuda,cudnn,pytorch環境
更換gcc版本
sudo apt install gcc-10
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
安裝NVIDIA驅動
禁用圖形介面
sudo systemctl set-default multi-user.target
sudo reboot
開機後按 ctrl + alt + f1進入命令列
安裝Driver
參考這篇文章
https://www.cnblogs.com/chua-n/p/13208398.html
解除安裝驅動:
sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove "*nvidia*"
在 https://www.nvidia.cn/Download/index.aspx?lang=cn 下載對應的驅動
安裝包裝包即可。
接著就可以用nvidia-smi檢視顯示卡
可以看到我已經安裝好了驅動Driver-470
這個cuda-version值得是我能夠使用的cuda最高版本,11.4可以用,那麼11.1也可以用。
安裝CUDA
解除安裝原來的cuda:
sudo apt autoremove cuda
sudo apt --purge remove "*cublas*" "cuda*"
下載cuda11.1(run版本,而不是deb版本),和對應的cudnn
安裝cuda11.1需要滿足:
- gcc >=9.3.0
- 有root許可權
注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sudo bash cudaXXX.run之後會有兩次互動的選擇:
1)填accept表示接受協議
2)自選安裝元件,我們一定要取消安裝Driver,因為Driver不允許降級,如果不取消安裝Driver會導致安裝失敗。
報錯:
Executing NVIDIA-Linux-x86_64-455.23.05.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1
[INFO]: Finished with code: 256
安裝完成之後要配置環境
此時/usr/local/有兩個cuda資料夾,一個是cuda一個是cuda-11.1,cuda就是cuda-11.1的硬連結。
新增環境變數
export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
安裝CUDNN
選擇 cudnn library for linux
下載壓縮檔案後,解壓縮得到一個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包,
下載
用 sudo dpkg -i xxx.deb
進行安裝:
安裝順序: libcudnn8_8 libcudnn8-dev libcudnn8-samples
,這是上面三個deb檔案的字首。
安裝之後進行測試:
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
如果出現 fatal error: FreeImage.h ,執行
sudo apt-get install libfreeimage3 libfreeimage-dev
再一次執行:
make clean && make
./mnistCUDNN
輸出test passed!代表可以正常使用cudnn
裝pytorch
執行:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia
測試:
import torch
torch.cuda.is_available()
輸出True,表示有gpu
結束
恢復圖形介面
sudo systemctl set-default graphical.target
sudo reboot
結語:
按照這樣方式即可搭建cuda環境。