ubuntu16.04安装cuda8.0试错锦集
参考文献:
- [http://www.jianshu.com/p/35c7fde85968]
- [http://blog.csdn.net/sinat_19628145/article/details/60475696]
系统信息:
- 系统:ubuntu16.04
- cuda版本:cuda_8.0.61_375.26_linux
- 显卡:NVIDIA GeForce GTX 750 ti
前期检查:
- 最好是先看官方文档:[http://docs.nvidia.com/cuda/pdf/CUDA_Installation_Guide_Linux.pdf]
- 做好重装系统的心理准备,多来几遍就很得心应手了。毕竟贴主装了七八次。。。。
主要是三个步骤;
一.检查自己电脑的环境,是否支持cuda下载要求。
二.安装。有两种安装方式,建议使用.run文件。
三.试运行,检查是否安装成功
一.检查电脑环境
!!!!打开系统后,按 F2 进入 boot 界面,确定secure boot 选项是 disable,如果是enable状态,请先切换到disable选项,否则后续会出错。
1、检查自己的GPU是否支持CUDA
lspci | grep -i nvidia
我的GPU是支持的,在这里查看:[https://developer.nvidia.com/cuda-gpus] 有的话就可以继续啦,不然只能换个显卡了。
2、检查自己的系统,以方便日后找相关安装包
uname -m && cat /etc/*release
3、检查自己的gcc版本gcc --version
ps:没有的话可以通过 sudo apt-get install gcc安装
4、检查是否安装了kernel header和 package developmentuname -r
查看 kenel header信息
可以通过下面的命令行安装:
sudo apt-get install linux-headers-$(uname -r)
检查全部通过。继续安装。哪里不符合,请参照官方教程。
二、安装cuda
"这里有两种安装方式.官方文档中,第三章讲的是deb。第四章讲的是run。deb比run简单,但是很有可能出错,而且后期肯呢个会无法调用某些C++库函数,所以选择run文件安装。
1、提前下载自己对应版本的run安装包,记住下载地址。
官网找一个合适的
[https://developer.nvidia.com/cuda-downloads]
2、禁止ubuntu系统自带的nouveau显卡驱动。
2.0查看自己的驱动状态
lsmod | grep nouveau
如果有显示就要执行下面的操作了,一般新系统都是有输出的。
2.1创建blacklist-nouveau.conf
1)
touch /etc/modprobe.d/blacklist-nouveau.conf
gedit blacklist-nouveau.conf
或者
2)
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
在新建的文件里添加如下内容
blacklist nouveau
options nouveau modeset=0
按照1)进行的用户直接Ctrl+s保存然后关闭文件
按照2)进行的用户输入内容结束后,按ESC,光标跳到文件尾部,输入:wq保存并退出。
2.3更新:
sudo update-initramfs -u
2.4检查是否禁用成功
lsmod | grep nouveau
没有东西输出变是成功啦。一般这时候需要先重启才能生效。重启:reboot
三、安装run文件
1、重启系统后,不要进入登陆界面(!!!否则可能会安装失败),直接按Ctrl+Alt+F1进入文本模式(命令行界面),输入用户名和密码,登录账户。
2、关闭图形化界面sudo service lightdm stop
{可以先输入命令$lsmod | grep nouveau测试是否禁用成功}
3、使用cd 命令切换到cuda_8.0.61_375.26_linux.run的目录,执行
sudo sh cuda_8.0.27_linux.run
“安装的时候,要让你先看一堆文字(EULA),我们直接不停的按##空格键到100%; 遇到提示是否安装openGL ,选择no,其他的可以一路accept, yes或回车,不建议安装samples.以及x-config。
安装成功后,会显示installed,否则会显示failed。”
4、重启图形化界面 sudo service lightdm start
高能!!!登录时能进入桌面,不会一直在重复登录,成功已近大半。
贴主就是因为没有把secure boot的状态设置为disabled,走了很多弯路。
四、检查是否安装成功
1、执行ls /dev/nvidia*
可能出现不同结果,
××× 若结果显示
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功
×××如果结果是这俩种情况
ls: cannot access /dev/nvidia*: No such file or directory
或是
/dev/nvidia0 /dev/nvidiactl
中的一个或两个,但没有/dev/nvidia-num
按照官方的做法:新建把.sh文件(我命名为zzq.sh)
touch nvi.sh
sudo gedit nvi,sh
在新建的文件中加入如下内容:(注意空格)
#!/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
给这个脚本赋予执行权限,然后执行
sudo chmod a+x nvi.sh
sudo ./nvi.sh
2、配置环境:sudo gedit /etc/profile
在最后面加上这些:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
【P.S. 上面代码里面的 \ 表示的换行】
然后重新加载环境变量
sudo source /etc/profile
3、测试
cat /proc/driver/nvidia/version
nvcc -V`
nvidia-smi
有输出则成功。撒花。