一、CUDA, CUDNN安裝
(1)顯卡驅動安裝
如果之前安裝過,需要先卸載之前的驅動: sudo apt-get remove --purge nvidia*,然後再按下面的步驟進行。命令分別如下(方便進行復制粘貼):
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
sudo apt-get install nvidia-410
注意最後一步建議不要使用默認安裝,即 sudo apt get install nvidia(這樣默認安裝的是最新版本,不一定與你需要的匹配),要在nvidia後面加上版本號,比如我在此安裝的是nvida-410,支持cuda10.0.
https://zhuanlan.zhihu.com/p/36121045
(2)CUDA安裝
先下載安裝包:https://developer.nvidia.com/cuda-downloads,本人選擇的是在線安裝(網絡一定要好,否則有可能中途失敗),按照官方給的說明安裝即可
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
$ sudo apt-get update
$ sudo apt-get -y install cuda
默認安裝的是最新版本,如果需要指定版本,可以將最後一行代碼改成sudo apt-get -y install cuda-10.0(以安裝10.0爲例,改成自己想安裝的包就行)
(3)cudnn安裝
一定要下載與cuda對應的安裝包,下載地址:https://developer.nvidia.com/rdp/cudnn-download
解壓文件,cd到該目錄下,執行下列命令:
$ 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*
安裝完成後配置環境變量:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
最後 source ~/.bashrc 讓其生效,這一步可能需要root權限,su root即可進入
也可參照https://blog.csdn.net/caicaiatnbu/article/details/87626491,中間有建立庫的軟鏈接, 軟鏈接的刪除方式:
rm -rf (之前通過ln建立的軟鏈接) eg: rm -rf libcudnn.so.7 libcudnn.so
(4)cuda, cudnn查看版本
https://blog.csdn.net/baidu_32936911/article/details/79774289
cat /usr/local/cuda/version.txt (查看cuda版本)或者nvcc --version
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 (查看cudnn版本)
(5)cuda, cudnn卸載
cuda卸載:https://blog.csdn.net/weixin_40294256/article/details/79173174
sudo apt-get remove cuda*
sudo apt-get remove --purge cuda*
sudo apt-get update
然後在目錄切換到/usr/local/下
cd /usr/local/
sudo rm -r cuda-10.1
cudnn卸載:https://blog.csdn.net/qq_15192373/article/details/81609077
-
sudo rm -rf /usr/local/cuda/include/cudnn.h
-
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
二、模型訓練過程中的問題
(1)無法調用GPU,提示 could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR,暫時的解決方法是添加
os.environ['CUDA_VISIBLE_DEVICES']='-1',即使用cpu去訓練,爲提高訓練速度,可將batchsize改小一點。本質原因是版本不匹配,檢查顯卡驅動,cuda,cudnn及tensorflow-gpu版本之間的關係。
更新:後來版本安裝好後,重新提示同樣的錯誤,發現是顯卡設備號設置錯誤(本機是雙顯卡,但有一個無法調用),設置os.environ['CUDA_VISIBLE_DEVICES']='0'出現同樣的錯誤,設置成os.environ['CUDA_VISIBLE_DEVICES']='1'就好了。所以如果有多顯卡的朋友,如果發現出現類似的問題,不防從這兩個方面試下:第一,檢查版本是否匹配;第二,將所有的顯卡都試一遍。