本人电脑配置:Ubuntu16.04+GT750M 安装NVIDIA390.87驱动+CUDA9.0,遇到了很多坑、但是最终还是成功了。因此记录一下安装过程中出现的问题,以备不时之需。
这里主要是想提醒大家配置环境以前,最好查看一下所要运行工程依赖的cuda版本以及cuda版本要求的最低显卡驱动版本。下图是关于不同CUDA版本所要求的最低显卡驱动版本(图片来源自CUDA官方网站):
官网上也有提到一些关于CUDA需要的不同系统对应的内核版本,这里不用理会,太高的kernel反而不好,很可能还需要降低内核版本,比如CUDA9.0要求Ubuntu16.04内核版本为4.4,但是我的是4.15.所以这里先不用管这些,待安装时出现问题再处理。
首先在NVIDIA显卡驱动下载查找自己电脑支持的显卡驱动版本,查找到的可能是最新版本驱动,如果想下载旧版本可以在网上直接搜相应的显卡版本。将想要安装版本下载到自己的电脑,这里我是下载的.run文件。
因为CUDA是只支持NVIDIA显卡的,输入:
lspci | grep -i nvidia
如果输出英伟达显卡信息,则说明可以支持CUDA。输出信息类似下面:
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)
Ubuntu自带的nouveau驱动会影响cuda安装,不当操作会导致黑屏和登陆循环,输入下面命令:
lsmod | grep nouveau
如果有输出则代表nouveau正在加载,需要禁用;如果无输出,则表示已经禁用。Ubuntu的nouveau禁用方法:
cd /etc/modprobe.d
sudo touch blacklist-nouveau.conf
sudo gedit blacklist-nouveau.conf
在文件中输入以下内容并保存:
blacklist nouveau
options nouveau modeset=0
更新:
sudo update-initramfs -u
重启电脑后(注销也行)查看,若无输出则表示禁用成功。
lsmod | grep nouveau
关闭图形化界面:
sudo service lightdm stop
利用cd命令进入到你下载好的NVIDIA显卡驱动(.run) 文件所在的路径下分别执行以下命令:
sudo chmod a+x NVIDIA-Linux-x86_64-390.87.run
sudo ./NVIDIA-Linux-x86_64-390.87.run -no-opengl-files
sudo service lightdm start
验证驱动版本,安装成功后会出现你刚才安装的驱动版本信息(灰色块为输出信息):
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 390.87 Tue Aug 21 12:33:05 PDT 2018
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
CUDA9.0可在CUDA官网直接下载。
直接进入到下载好的CUDA9.0文件目录下,输入:
sudo chmod a+x cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run
然后会有一系列的选项,除了询问是否安装CUDA自带的显卡驱动选NO外,其他的可以全选YES;因为自己已经安装过显卡驱动,所以不必在使用CUDA带的,而且使用CUDA自动安装显卡驱动,后面会出现一些问题。
安装成功需要配置一下环境变量,在~/.bashrc(或是.zshrc)文件中最后添加下面语句:
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
然后使环境变量生效:
source ~/.bashrc
至此CUDA9.0就安装成功了,可以使用命令查看安装的CUDA信息:
nvcc -V
输出信息如下:
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
cudnn的下载需要在cudnn官网注册一个账号(可以使用qq、微信或者Google账号都行),然后选择与CUDA版本相对应的版本进行下载(我选择的是7.6.2版本)。
cudnn的安装相对简单,根据下载文件不同官网提供了三种安装方式,大家可以按照官网教程安装。我本人用的是第二种方式(需要下载上图中关于Ubuntu16.04的三个Deb文件),然后分别执行下面命令:
sudo dpkg -i libcudnn7_7.6.2.24-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.2.24-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.6.2.24-1+cuda9.0_amd64.deb
这样cudnn的安装就完成了,官网提供了一个检测是否安装成功的测试例子,依次输入以下命令即可:
cp -r /usr/src/cudnn_samples_v7/ $HOME #这里是把samples拷贝到路径$HOME下
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
若最后输出如下信息则表示安装成功:
Test passed!