前言
为了使用对深度学习框架进行二次开发,平台采用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
接下来重新安装失败的安装操作就可以了