1、检查自己的电脑环境是否具备安装CUDA的条件
a) 检查自己的GPU是否是CUDA-capable
在终端中输入:
$ lspci | grep -i nvidia
会显示自己的NVIDIA GPU版本信息
去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中
b) 检查自己的Linux版本是否支持 CUDA(Ubuntu 16.04没问题)
c) 检查自己的系统中是否装了gcc
在终端中输入:
$gcc --version
可以查看自己的gcc版本信息
#gcc降级可参考博文:http://blog.sina.com.cn/s/blog_16e94132c0102y38j.html
d) 检查是否安装了kernel header和 package development
在终端中输入:
$uname –r
可以查看自己的kernel版本信息
在终端中输入:
$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
2、先安装nvidia 显卡驱动
a) 禁用 nouveau
终端中运行:
$ lsmod | grep nouveau
如果有输出则代表nouveau正在加载。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入一下内容
$sudo gedit /etc/modprobe.d
写入
blacklist nouveau options nouveau modeset=0
打开终端,运行
$ sudo update-initramfs –u
设置完毕可以再次运行
$ lsmod | grep nouveau
检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。
b). 安装显卡驱动
$sudo sh NVIDIA-Linux-x86_64-390.59.run
以上检查我的电脑系统都满足要求,如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。
3、 选择安装方式
CUDA提供两种安装方式:package manager安装和runfile安装
我本来选的是 package manager 安装,这种方法相对简单,但尝试了几次都失败。后来是转换到runfile安装才成功的。因此此处只介绍runfile安装方式。
下载cuda安装包:cuda官网下载,根据系统信息选择对应的版本,runfile安装的话最后一项要选择 runfile文件
CUDA 9.1
#检查安装包的md5值:
md5sum cuda_9.1.85_387.26_linux.run
md5标准值:https://developer.download.nvidia.com/compute/cuda/9.1/Prod/docs/sidebar/md5sum-b.txt
4、runfile安装cuda
a) 禁用 nouveau
终端中运行:
$ lsmod | grep nouveau
如果有输出则代表nouveau正在加载。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入一下内容
$sudo gedit /etc/modprobe.d
写入
blacklist nouveau options nouveau modeset=0
打开终端,运行
$ sudo update-initramfs –u
设置完毕可以再次运行
$ lsmod | grep nouveau
检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。
b) 重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户
c) 输入
$ sudo service lightdm stop
关闭图形化界面
d) 切换到cuda安装文件的路径,运行
$ sudo sh cudaXXX_linux.run
按照提示一步步操作
遇到提示是否安装openGL ,选择no(双显,且主显是非NVIDIA的GPU需要选择no,否则可以yes)
其他都选择yes或者默认
安装成功后,会显示installed,否则会显示failed。
e) 输入
$ sudo service lightdm start
重新启动图形化界面。
Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
f) 重启电脑。检查Device Node Verification。
检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤,进行添加。(或者在终端中运行“nvidia-smi”)
g) 设置环境变量。
终端中输入
$ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
保存文件。
这里有点与官方安装文档稍有不同,需要说明:
官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。
h) 重启电脑,检查上述的环境变量是否设置成功。
终端中输入 :
$ env
在输出的环境变量中检查有无上述 g) 中设置的变量,如果有则代表设置成功。
到此为止,CUDA的安装算是告一段落了。为了保险起见,建议进行下述的检查工作,确保真正的安装成功。
5、 安装完毕后的检查工作。
a) 检查 NVIDIA Driver是否安装成功
终端输入 :
$ cat /proc/driver/nvidia/version
会输出NVIDIA Driver的版本号
b) 检查 CUDA Toolkit是否安装成功
终端输入 :
$ nvcc –V
会输出CUDA的版本信息
如果没有说明cuda没有正常安装,进入/usr/local/cuda/bin看有没有执行文件,如果有就去添加环境变量(没有只能重装了),打开
$vim ~/.bashrc
添加环境变量
export PATH=$PATH:/usr/local/cuda/bin
c) 尝试编译cuda提供的例子
切换到例子存放的路径,默认路径是 ~/NVIDIA_CUDA-9.1_Samples
(即 /home/xxx/ NVIDIA_CUDA-7.5_Samples, xxx是你自己的用户名)
然后终端输入:
$ make
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。
我的第一次运行时出现了报错,提示的错误信息是系统中没有gcc
然后在终端运行
$ sudo apt-get install gcc
安装完gcc后 再make就正常了
整个编译的时间持续比较长,耐心等待,大概十几分钟是需要的。
d) 运行编译生成的二进制文件。
编译后的二进制文件 默认存放在~/NVIDIA_CUDA-9.1_Samples/bin中。
切换路径 :
cd ~/NVIDIA_CUDA-9.1_Samples/bin/x86_64/linux/release
终端输入 :
$ ./deviceQuery
看到类似如下图片中的显示,则代表CUDA安装且配置成功(congratulation!!)
再检查一下系统和CUDA-Capable device的连接情况
终端输入 :
$ ./bandwidthTest
看到类似如下图片中的显示,则代表成功