deepin下安裝CUDA9.0
因為參加學校一些專案的原因需要學習一下深度學習方面的知識,所以就需要配置CUDA來編譯一些原始碼來學習一下
配置環境這個確實有點坑,搞了挺久了還是卡在這一步(其實原始碼也看不懂),不過最近總算是搞成功了吧,不過編譯原始碼的時候還是出了點問題,先記錄一下以後再補坑了吧。
大致的思路就是把原來的開源驅動給禁了,然後安裝Nvidia的閉源驅動->安裝CUDA的.run檔案->放入cudnn檔案,連結
注:由於CUDA 9.0僅支援GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本為7.3,故手動安裝gcc-6與g++-6:
sudo apt-get install gcc-6 g++-6
之後切換至/usr/bin目錄修改符號連結,使GCC 6成為預設使用版本:
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g++-6 g++
先裝好驅動的話則在安裝CUDA.run中不選擇安裝驅動
sudo apt install bumblebee bumblebee-nvidia nvidia-smi
NVIDIA的閉源顯示卡驅動安裝的話直接從源裡安裝就比較方便了,源裡有適合的版本。也可以在驅動管理器(應用那裡搜一下)
那裡進行驅動的切換。deepin下還可以去深度商店裡下載深度顯示卡驅動管理器。
注:命令列以外的方式安裝大黃蜂方案的話會順便下載對應的NVIDIA驅動的,所以不用直接裝
方案一:從源裡安裝
參考:https://wiki.deepin.org/index.php?title=Deepin15.4.1%E5%AE%89%E8%A3%85Caffe
目前從源裡安裝的CUDA版本為8.0,cudnn的話從官網下載之後再把相應的lib和.h檔案放入/usr/lib和/usr/include即可(還要連結一下)
方案二:從官網下載CUDA9.0安裝
如果直接下載.deb檔案然後進行安裝會有點坑,我這裡出現了無法安裝的情況,需要解除安裝驅動然後再安裝.deb檔案,但是再安裝回驅動時原來安裝好的CUDA就不見了(一頭霧水)
所以採用了.run檔案進行安裝的方式
參(復)考(制):http://notobject.com/article/11
step1 前往nividia官網下載cuda9.0和 cudnn7.0
- 下載cuda9.0
cuda9.0下載地址: https://developer.nvidia.com/cuda-90-download-archive
依次選擇:linux -> x84_64 -> Ubuntu -> 16.04 -> runfile(local)
- 下載cudnn7.0
下載cudnn7.0需要登入,如果沒有nividia賬號,先註冊一個。登入成功後在官網搜尋cudnn7.0,進入下載頁面。選擇與cuda9.0配套的cudnn7.0_libraries for linux 版本
step2 禁用nouveau驅動
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
將下面兩行程式碼拷貝進去:
blacklist nouveau
options nouveau modeset=0
執行以下命令後,重啟電腦
sudo update-initramfs -u
重啟完成後輸入:
lsmod | grep nouveau
沒有任何資訊輸出則表示nouveau已經成功禁用,否則請重試上面的步驟。
step3 開始安裝
按快捷鍵CTRL + ALT + F2
進入文字命令列模式。
輸入賬戶密碼登入。
執行命令,關閉x server:
sudo service lightdm stop
進cuda9.0目錄,執行:
sudo sh ./cuda-xxx.run
按q退出文件瀏覽,輸入accept
同意,除了是否安裝openGL 選擇no之外,其他選項輸入y 或者回車預設。
安裝完成之後,執行:
sudo service lightdm start
開啟x server 進入圖形介面
step4 新增環境變數:
gedit ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.0/bin:$PATH
將上面兩行環境變數新增到檔案末尾,儲存檔案。
執行source命令,使環境變數配置生效。
source ~/.bashrc
安裝cudnn7.0加速包
解壓下載的cudnn壓縮包
依次執行以下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/includesudo cp cuda/lib64/lib* /usr/local/cuda/lib64/cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.3 libcudnn.so.7sudo ln -s libcudnn.so.7 libcudnn.so
檢查驅動是否安裝成功
執行命令(V是大寫):
nvcc -V
可以看到輸出相應的資訊,則安裝成功
如果在編譯的時候出現了找不到.so檔案的錯誤的話,就在 /etc/ld.so.conf.d/加入檔案 cuda.conf
內容為/usr/local/cuda-9.0/lib64 ,儲存然後執行sudo ldconfig
找不到lcudnn:
先把原來的libcudnn.so連結刪除(/usr/lib下)
然後再建立連結
sudo ln -s libcudnn.so.7.0.5 libcudnn.so
後:額,原來cudnn不小心下成power8的了,所以會出現問題