为了学习Caffe新买了笔记本,安装cuda时遇到了很多问题,不过好在都成功的解决了。
网上有很多cuda的安装教程,每个人的电脑配置不同遇到的问题也不一样,现在就我自己的安装配置情况总结一下具体的安装步骤,因为有同学的正确指导,在实际的安装过程中并没有遇到什么特别大的难题,每一步都很仔细,都查清楚了才开始执行下一步:
笔记本主要参数
笔记本型号:惠普WASD 15-AX019TX(X1G89PA)
内存:8GB(8GB×1)
处理器:英特尔 酷睿i5 6代系列 2.3GHz
显卡: 英伟达Geforce GTX 965 (GPU并行运算)
硬盘:DDR4 2133MHz 混合硬盘(M.2 SSD+7200转HDD) 128GB+1TB
安装Ubuntu 14.04操作系统
(由于对ubuntu系统的安装不是很了解,所以这一部分是直接从网上copy来的,不过ubuntu的安装应该比较容易)。
1、制作Ubuntu启动盘(使用软碟通写入到U盘上);
2、笔记本启动时,选择快捷启动,从U盘启动Ubuntu live cd系统;
3、安装Ubuntu 14.04操作系统;
4、 安装完毕后重新启动系统;
启动系统,在进入Grub界面时,按e键,进入编辑页面,在倒数第二行中,ro quiet splash后面添加nomodeset,这样进入系统后不会因为独显驱动问题而导致黑屏了;
在进入系统后,编辑文件/boot/grub/grub.cfg文件,搜索ro quiet splash关键词,同样追加nomodeset,这样不用每次启动系统前重复上述步骤了。
注意:安装完系统后千万不要更新系统,很多网上的教程都说明了,如果更新了系统,将会导致后面的cuda安装失败,不过我没有试过,还是建议不要更新系统了,不要问我为什么,因为我也不懂。
好了,下面开始安装cuda吧,这里主要是参照的这个链接http://blog.csdn.net/masa_fish/article/details/51882183,不过有些不一样的地方,我自己的安装过程如下:
PRE-INSTALLATION ACTIONS 安装前准备
1.1.Verify You Have a CUDA-Capable GPU
在终端中输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息
去CUDA的官网http://developer.nvidia.com/cuda-gpus查看自己的GPU版本是否在CUDA的支持列表中
1.2.Verify You Have a Supported Version of Linux 检查自己的linux版本是否支持,我安装的是ubuntu14.04版本的,这个就没有问题
在终端中输入: $ uname -m && cat /etc/*release
终端显示结果如下所示:
1.3. Verify the System Has gcc Installed
在终端中输入: $ gcc --version
1.4. Verify the System has the Correct Kernel Headers and Development Packages Installed
在终端中输入: $ uname –r 可以查看自己的kernel版本信息
在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
这四个小步骤我都比较顺利,安装好ubuntu后这些都装好了,如果在某一步中有问题,可以参照官方文档进行解决。
runfile安装cuda 下载链接https://developer.nvidia.com/cuda-downloads
2.1.禁用 nouveau
终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入以下两行内容:
blacklist nouveau
options nouveau modeset=0
在终端中输入:$ sudo update-initramfs –u
设置完毕可以再次运行
$ lsmod | grep nouveau 检查是否禁用成功
如果运行后没有任何输出,则代表禁用成功(如果还有输出,表示没有禁用成功,不过也不要担心,可以重启电脑,再次运行该命令一般情况下会显示禁用成功)。
2.2.重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户
2.3.在text mode中输入
$ sudo service lightdm stop 关闭图形化界面
2.4.切换到cuda安装文件的路径
运行$ sudo sh cuda_7.5.18_linux.run
一般下载好cuda安装包后直接放在home目录下,就可以按照上面的代码运行了,建议这么做。
遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以选择yes)。其他都选择yes或者默认安装成功后,会显示installed,否则会显示failed。
2.5. 输入 $ sudo service lightdm start 重新启动图形化界面。
Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
2.6. 重启电脑。检查Device Node Verification。
检查路径~/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤,进行添加。
添加过程:
a)在home下创建一个文档,命名位modprobe,不要后缀,文档的内容如下:
#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
b)将该文件复制到/etc/init.d目录下
终端输入: $ sudo chmod 755 /etc/init.d/modprobe
d)执行如下命令将脚本放到启动脚本中去。
终端输入: $ cd /etc/init.d
$ sudo update-rc.d modprobe defaults 95
注意:数字95其实可以随便设置的。
e)关机然后重新启动,去~/dev下面查看,不出意外此时应该有nvidia*系类文件了。
对于2.6的说明:很有必要说一下不管怎么搞我的nvidia*文件总是出现不了,所以我放弃,不过好像并没有太大的影响。这一点根据情况大家自己试试吧。
2.7. 设置环境变量。
终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行:
export PATH=/usr/local/cuda-7.5/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64/:$LD_LIBRARY_PATH
2.8. 重启电脑,检查上述的环境变量是否设置成功。
终端中输入 : $ env
在输出的环境变量中检查有无上述 设置的变量,如果有则代表设置成功。
3. 检查cuda是否安装成功。
3.1.检查 NVIDIA Driver是否安装成功
终端输入 :$ cat /proc/driver/nvidia/version 会输出NVIDIA Driver的版本号
3.2检查 CUDA Toolkit是否安装成功
终端输入 : $ nvcc –V 会输出CUDA的版本信息
3.3尝试编译cuda提供的例子
切换到例子存放的路径,默认路径是 ~/NVIDIA_CUDA-7.5_Samples
终端输入:$ make
注意:这里的make操作是将Samples文件夹下所有的demo都编译了一遍,所以比较耗时,如果仅仅想测试某个例子,可以进入相应的文件夹去编译即可。
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。
注意:我第一次运行的时候就报错了,错误是缺少一些依赖库,一般情况下也就是这个问题,按照如下方式安装就好,其实也没必要都安装,不过安装上也不会报错:
$ sudo apt-get install freeglut3-dev
$ sudo apt-get install build-essential
$ sudo apt-get install libx11-dev
$ sudo apt-get install libxmu-dev
$ sudo apt-get install libxi-dev
$ sudo apt-get install ibgl1-mesa-glx
$ sudo apt-get install llibglu1-mesa
$ sudo apt-get install libglu1-mesa-dev
安装好后,在终端输入: $ make
成功后,NVIDIA_CUDA-7.5_Samples文件夹下会出现一个bin文件夹。运行编译生成的二进制文件。
编译后的二进制文件 默认存放在~/NVIDIA_CUDA-7.5_Samples/bin中。
切换路径 : cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
终端输入 :$ ./deviceQuery
看到类似如下图片中的显示,则代表CUDA安装且配置成功(congratulation!!)
再检查一下系统和CUDA-Capable device的连接情况
终端输入 : $ ./bandwidthTest
心得:虽然安装过程复杂,但一步一步仔细的照步骤走下去还是OK的。