1 安裝顯卡驅動(460.27.04)
見上一篇博文。
2 安裝CUDA
(1) 下載cuda(cuda_11.2.0_460.27.04_linux.run)
(2)禁用nouveau
新建一個文本/etc/modprobe.d/blacklist-nouveau.conf(如通過sudo vim /etc/modprobe.d/blacklist-nouveau.conf) ,在文件中輸入(vim輸入i后即可進入編輯模式):
blacklist nouveauoptions nouveau modeset=0
保存(vim按Esc推出編輯模式,輸入:wq保存退出)。輸入如下指令重新生成內核:
sudo update-initramfs -u
注意,不要急着重啟電腦reboot!!!然后官方給出如下說明“Reboot into runlevel 3 by temporarily adding the number "3" and the word "nomodeset" to the end of the system's kernel boot parameters”。如果你不會操作的話,最好配置一下openssh-server!不然重啟黑屏就可能啥也干不了了。
(3)給Linux電腦配置openssh-server(實測不需要配置也行,直接進入tty命令行模式,登錄后即可。tp)
由於在禁用nouveau並重啟電腦后,屏幕可能無法正常顯示(親測有的電腦可以進入tty命令行界面,有的屏幕完全沒顯示,但是遠程連接通常是可以的。所以在關機前要配好ssh:
sudo apt install openssh-server
安裝好后輸入ifconfig查看IP地址,測試能夠被成功遠程后再關機。如果沒安裝ifconfig,可輸入
sudo apt install net-tools
(4) 重啟電腦
輸入如下指令重啟電腦
sudo reboot
(5)重啟電腦后,如果屏幕能顯示,則按Ctrl+Alt+(F1 or F2 or ... F6)切換至tty命令行模式。如果屏幕不能顯示,也是可以通過遠程ssh連接上的。
關閉圖形界面:
sudo service lightdm stop # 有些可能不需要
終於可以開始安裝了,找到對應路徑文件,輸入:
sudo sh cuda_11.2.0_460.27.04_linux.run
然后正常安裝就好了。

(6)配置環境變量
打開sudo vim /etc/bash.bashrc(如果沒有權限可在~/.bashrc內加入,在末尾加入(注意cuda版本)
export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
和前面一樣,保存退出。然后輸入source /etc/bash.bashrc。測試nvdia-smi或者cuda --version確認安裝好了。確認好后,最好對應上面的打開圖形界面服務:
sudo service lightdm start # 有些可能不需要
再次sudo reboot重啟電腦。正常情況就能夠恢復正常顯示了~
注:如果直接運行則會報錯如下:

原因是沒有禁用nouveau本地圖形驅動。根據網上的各種博客,和官方說明,總結出如下比較穩定的Cuda安裝方法,可供參考。
3. 測試CUDA是否安裝成功
(1)nvcc -V
會輸出CUDA的版本信息(V要大寫)
(2)編譯samples例子
cd /usr/local/cuda-11.2/sample
給該目錄增加執行權限, 然后在該目錄下終端輸入make,等待十來分鍾。
(3)編譯完成后測試
運行samples/1_utilities/deviceQuery程序,sudo ./deviceQuery
查看輸出結果,重點關注最后一行,Pass表示通過測試
4. cudnn安裝(cudnn-11.2-linux-x64-v8.1.1.33.tgz)
(1) 按需求下載cudnn的安裝文件:https://developer.nvidia.com/rdp/cudnn-archive
需要注冊賬號。

(2)解壓下載文件, tar zxvf 文件名.tgz,可以看到cuda文件夾,在當前目錄打開終端,執行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64/
sudo chmod a+r /usr/local/cuda-11.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.2/lib64/libcudnn*
(3)查看cudnn版本(可以不操作,cudnn_version沒有拷貝過去)
在終端輸入
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果出現下圖所示版本信息,說明安裝成功。
