M Ubuntu上安装Cuda时踩过的坑

最近学习Tensorflow时,突然想安装cuda来试试GPU的加速效果。一鼓作气将系统整个重新安装为Ubuntu 14.04,然后按照网上教程尝试安装Cuda 8.0;系统显卡是Nvidia的,然而安装之后总是在登录界面循环,或者进去之后桌面一片空白,即没有任务栏也没有标题栏;如此反复重装系统,重装Cuda接近10遍,中途放弃过但是感觉心有不甘,就去查看官方文档,链接:http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf;由于阅读比较困难加上内心郁闷,速度比较慢,就是希望可以能够装好;现在和大家分享一下最后成功的关键点,也许是个案,但希望对类似情况的你有所帮助。

首先说一下基本步骤:

1、安装ubuntu14.04

2、配置一下网络,使得ubuntu能够连接Internet

3、下载runfile[local]的cuda安装文件

(在其它电脑上预先下载);注意不是deb文件,笔者安装deb文件没有成功,可能是因为某些设置的原因,具体可以参考官方安装文档;

官网链接:https://developer.nvidia.com/cuda-downloads

选择合适的版本,在这里文件大概1.4G大小。

4、其它的依赖说明

cuda 驱动包括 Nvidia 驱动,Toolkit 和 samples,所以在这之前可以不安装Nvidia 驱动;Ubuntu 14.04系统预装了GCC4.8,默认就行;

官方安装文档中提到,需要安装完整的samples示例,需要安装一些依赖,具体就是执行下面命令

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

5、禁掉nouveau

打开终端,输入$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf,输入

blacklist nouveau
options nouveau modset=0

保存退出,执行$ sudo update-initramfs -u,禁用结束。执行检查决定是否需要重启电脑。

输入$ sudo lspci | grep nouveau,如果没有内容,则禁用成功,不需要重启;否则需要重启然后再检查,一定要确保nouveau被禁用。

这是因为Nouveau驱动可能已经安装在你的根目录文件下,它可能导致cuda的显卡驱动安装失败。

6、关闭GUI

就是关掉X server;在这之前,需要将下载好的.run文件放在一个非中文文件夹下面;

按下ctrl+alt+f1,然后登录管理员账号,输入命令$ sudo service lightdm stop

7、更改run文件执行权限

$ sudo chmod +x cuda_8.0.61_375.26_linux.run

8、执行CUDA安装文件

(注意:如果有集成显卡,需要加上--no-opengl-libs参数,笔者电脑上确实为有集成显卡,可以用命令$sudo lspci | grep -i vga查看;一般都有)

笔者没有安装成功,这里就是关键点,注意加上--no-opengl-libs参数,就是不安装openGL,不然登录不进去;安装过程中xcog.conf切记不要更新,看到这个选择时键入n,默认为n。

笔者的命令:$sudo ~/cuda_8.0.61_375.26_linux.run --no-opengl-libs

然后出现的是安装前须知,一直按着回车,最后100%后键入accept。接着才是安装过程,注意上面加红的选择,其他的都可以默认,这是能否成功的关键。

9、切换回GUI

$ sudo service lightdm start

正常操作应该可以登录进去了,恭喜你,暂时没有什么问题。

如果没有进去,可以重装系统然后按照官方安装文档一步步来,也可以安装官方文档卸载了重装,不一定需要重装系统。

10、配置环境变量

输入$ sudo gedit /etc/profile,打开 gedit ,最后两行输入

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

保存退出,环境变量配置完成,运行命令$ source /etc/profile使环境变量生效。

11、测试一下cuda的一些sample 

cd到cuda sample的路径,默认是用户账号目录下的NVIDIA_CUDA-8.0_Samples,cd进入文件夹,make一下;

$ make -j8

提示:如果没有make命令,可以使用apt-get install进行安装。

之后生成了一个bin,在一路cd进去,直到有个目录有很多程序文件。运行

$ ./deviceQuery

如果看到一大串正常的状态显示,就证明cuda装好了,例如输出 Pass 等信息,则说明成功安装。

笔者犯得错误就是第8步,集成显卡不要安装openGL,加上参数--no-opengl-libs