環境:
Ubuntu 16.04 docker 19.03 cuda 11.1 cudnn 8.0.4
一、安裝CUDA
1.CUDA Tooltik 11.1 下載
進入官網https://developer.nvidia.com/cuda-downloads,選擇對應的版本後,下面會出現一行鏈接,進入這個鏈接下載runfile,大約2.5G,得到文件cuda_11.1.0_455.23.05_linux.run
2. 禁用 nouveau驅動
參考文章:https://blog.csdn.net/qq_39521554/article/details/82829886 終端中運行:
$ lsmod | grep nouveau
,如果有輸出則代表nouveau正在加載。需要我們手動禁掉nouveau。
Ubuntu的nouveau禁用方法: 在/etc/modprobe.d中創建文件blacklist-nouveau.conf 輸入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf 利用vi編輯器編輯和保存文件) 在文件中輸入一下內容: blacklist nouveau options nouveau modeset=0 b、執行: $ sudo update-initramfs –u c、再執行: $ lsmod | grep nouveau 若無內容輸出,則禁用成功,若仍有內容輸出,請檢查操作,並重複上述操作。
3.執行安裝腳本
參考文章:https://blog.csdn.net/zhiman_zhong/article/details/91491780
sudo sh cuda_***_linux.run
先輸入accept,看網上說安驅動會出現一些問題,為避免有坑,勾選除了Driver的項。運行完以後會出現WARNING,可以忽略。
4.設置環境變量
這裏參考了兩篇文章的方法,保險起見兩種方法都用了。
第一種方法是修改bashrc這個文件,在終端輸入
sudo gedit ~/.bashrc
然後會彈出來一個文檔,在這個文檔的末尾添加下面三句話,修改這個文檔應該需要root權限,不然改了等於沒改。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
用su直接切換到root,再執行
source ~/.bashrc
第二種方法參考了文章:https://blog.csdn.net/lihe4151021/article/details/90237681
在終端打開文件,輸入
sudo gedit /etc/profile
在文件末尾添加下面兩行
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存文件,並重啟。因為source /etc/profile是臨時生效,重啟電腦才是永久生效。
5.驗證
輸入nvcc -V,查看CUDA版本信息
nvcc -V
二、CUDNN
1.官網上下載安裝文件
就是需要注冊一個賬號:https://developer.nvidia.com/rdp/cudnn-archive
2.安裝cudnn
根據官網,和CUDA11.1配套的是CUDNN8.0.4 下載下來的是一個tar文件,那麼首先需要解壓這個文件,解壓之後得到一個cuda文件夾,裏面有lib64、include還有一個不知道什麼用的文檔
tar -xvf cudnn-***.tgz
3.複制
將解壓縮的文件放入對應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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
4.驗證
一個是官網https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-linux給出的驗證方法,cudnn裏有一個預置的mnist測試程序,我們要做的就是跑一下這個程序:
· Copy the cuDNN sample to a writable path.
$ cp -r /usr/src/cudnn_samples_v7/ $HOME
· · Go to the writable path.
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
· · Compile the mnistCUDNN sample.
$ make clean && make
· · Run the mnistCUDNN sample.
$ ./mnistCUDNN
· If cuDNN is properly installed and running on your Linux system, you will see a message similar to the following:
Test passed!
還有一種方法是查看cudnn版本信息:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
應該會出現安裝的版本號,但是我在運行時並沒有輸出,不知道會不會有影響