前言
爲了使用對深度學習框架進行二次開發,平臺採用GPU,並且算子等需要使用CUDA,所以需要在服務器上安裝GPU顯卡與CUDA。
1 安裝GPU驅動
- 首先確認你的顯卡已經安裝在你的機器上面
- 使用命令查看顯示器的設備,在這裏你可以看到你的顯卡信息
$ sudo lshw -numeric -C display
- 然後用命令查看Ubuntu推薦的驅動版本,進行安裝
$ ubuntu-drivers devices
- 我這裏選擇nvidia-340(這裏其實應該安裝384)進行安裝並安裝相應依賴庫
$ sudo apt-get install nvidia-340 mesa-common-dev freeglut3-dev
- 安裝完成後重啓
$ sudo reboot
- nvidia-smi命令已經可以正常使用了,表示安裝完成。
nvidia-smi
卸載nvidia驅動
因爲所安裝的cuda9.0要求(驅動)driver版本爲384,所以需要卸載安裝的340驅動,所以你在安裝一系列的工具之前一定調研好每個工具要安裝的版本,不然就烏龍了:
$ sudo service lightdm stop #停止lightdm
or sudo /etc/init.d/lightdm stop
$ sudo /usr/bin/nvidia-uninstall 卸載已裝驅動
假設在/usr/bin/下沒有nvidia-uninstall,使用命令:
$ sudo apt-get --purge remove nvidia-340
重啓服務器: sudo reboot
THE END
2 安裝CUDA
2.1 下載CUDA CUDA Toolkit
網址:最新版 https://developer.nvidia.com/cuda-downloads
我選擇安裝的爲9.0版本,鏈接:https://developer.nvidia.com/cuda-90-download-archive
然後通過$: uname -a 來查看你的Linux版本信息,進行選擇安裝。安裝方式我選擇Base Install如下圖:
2.2 CUDA installation
按照上圖Base installer中的順序來就可以了
$ sudo sh cuda_9.0.176_384.81_linux.run
下第二個詢問你是不是要安裝driver,一定要選n,因爲我們已經安裝了 驅動!
配置環境變量
$ vim ~/.bashhrc
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
$ source ~/.bashrc 使生效
驗證CUDA9.0是否安裝成功
$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
顯示下面信息即爲成功:
可以使用$ nvcc --version來檢查下版本
3 安裝cudnn
- 下載
在官網https://developer.nvidia.com/rdp/cudnn-download下載 對應CUDA版本的cudnn壓縮包
- 進入壓縮包所在目錄,解壓下載的文件
tar -xzvf cudnn-9.0-linux-x64-v7.5.0.56.tgz
- 安裝–也就是複製文件+修改權限
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
- 檢測是否安裝成功
你可以通過 一個簡短的cudnn例子來進行測試 記得編譯時要加 -cudnn選項哦
安裝過程中出現的問題及解決方案
在sudo apt-get install nvidia-340 mesa-common-dev freeglut3-dev命令之後出現了這個問題
Errors were encountered while processing:
runit
E: Sub-process /usr/bin/dpkg returned an error code (1)
解決方案:
$ cd /var/lib/dpkg
$ sudo mv info info.baksudo
$ sudo mkdir info
接下來重新安裝失敗的安裝操作就可以了