1.首先確定電腦已經(jīng)安裝顯卡驅(qū)動
輸入指令 cat /proc/driver/nvidia/version 查看當(dāng)前服務(wù)器版本號。
CUDA與Driver的對應(yīng)版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda10.0與Linux系統(tǒng)以及GCC的對應(yīng)關(guān)系:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
安裝包下載到 /home/zyh/cuda-xx/ 目錄下,安裝完成后就刪除安裝包;
目錄 /home/zyh/cuda-xx/tem/ 目錄用于cuDNN的解壓,安裝完成后就刪除該目錄;
2.下載CUDA Toolkit 和 cuDNN
cuda的下載地址: https://developer.nvidia.com/cuda-toolkit-archive
cudnn的下載地址: https://developer.nvidia.com/rdp/cudnn-archive


3.安裝CUDA
先執(zhí)行下面的命令安裝相關(guān)依賴,否則會出現(xiàn) Missing recommended library 錯誤
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
在安裝包所在目錄下輸入指令 sudo sh XXX 進(jìn)行安裝,如:sudo sh cuda_11.4.0_470.42.01_linux.run
先按q退出說明,直接進(jìn)入下一步(不然等很久)

按空格根據(jù)需要選擇要安裝的模塊,有“X”的表示安裝,沒有的表示不安裝,我這里已經(jīng)安裝過418.116的顯卡驅(qū)動了,所以選擇不安裝驅(qū)動 (最終的結(jié)果和此處的圖一致,如果不一致請保持一致的選擇):


4.配置cuDNN
使用指令tar -xzvf /home/zb/cuda/cudnn-8.0-linux-x64-v7.1.tgz -C /home/zb/cuda/tem/ 將cuDNN解壓到tem文件夾并執(zhí)行以下指令
cp /home/zb/cuda/tem/cuda/include/cudnn.h /home/zb/cuda/cuda-8.0/include/
cp /home/zb/cuda/tem/cuda/lib64/libcudnn* /home/zb/cuda/cuda-8.0/lib64
chmod a+r /home/zb/cuda/cuda-8.0/include/cudnn.h /home/zb/cuda/cuda-8.0/lib64/libcudnn*
5.cuda多個版本的切換
在安裝了多個cuda版本后,可以在/usr/local/目錄下查看自己安裝的cuda版本。

這里,cuda-11.0和cuda-11.4就是我們安裝的兩個cuda版本了,而cuda是一個軟鏈接,它指向我們指定的cuda版本(注意上面在設(shè)置環(huán)境變量時,使用的是cuda,而不是cuda-11.0和cuda-11.4,這主要是為了方便我們切換cuda版本,可以讓我們不用每次都去該環(huán)境變量的值)
可以使用stat命令查看當(dāng)前cuda軟鏈接指向的哪個cuda版本
可以看到,文件類型是symbolic link,而指向的目錄正是/usr/local/cuda-11.4,當(dāng)我們想使用cuda-11.0版本時,只需要刪除該軟鏈接,然后重新建立指向cuda-11.0版本的軟鏈接即可(注意名稱還是cuda,因為要與bashrc文件里設(shè)置的保持一致)
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-11.4 /usr/local/cuda
6.配置用戶環(huán)境變量
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
最后輸入指令 source .bashrc 使新配置的環(huán)境變量生效.
相關(guān)命令
查看cuda版本 : nvcc -V
查看位置 : which nvcc
查看NVIDIA動態(tài)使用情況: watch -n 1 nvidia-smi
cuda 版本 : cat /usr/local/cuda/version.txt
cudnn 版本 : cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
或者cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
NVIDIA 驅(qū)動版本 : cat /proc/driver/nvidia/version
7 cudnn版本更改
第一步:官網(wǎng)下載cuda對應(yīng)版本cudnn,解壓出cuda文件夾
當(dāng)軟連接cuda指向cuda11.4的時候,你對cuda操作和對cuda11.4操作是一樣的,也就是下面的命令中cuda等價于cuda11.4,自己可以看一下
第二步:刪除已有cudnn:
sudo cp cuda-xx/include/cudnn.h /usr/local/cuda-xx/include(xx代表版本號)
sudo cp cuda-xx/lib64/libcudnn* /usr/local/cuda-xx/lib64
sudo chmod a+r /usr/local/cuda-xx/include/cudnn.h /usr/local/cuda-xx/lib64/libcudnn*
sudo chmod +r libcudnn.so.7.6.5
sudo ln -sf libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2