ubuntu16.04+GTX1070+cuda9.0+cuda
本文写完其实是作者的一部血泪史,都说算法好惹,配置难缠。这是实话啊。这个配置可以让人憔悴。
如题本文讲述的是环境下显卡搭建的深度学习环境:
文章开始给大家附上一个网址:
感谢实验室学长给我的,一开始装cuda+cudnn都是挑版本高的装,果然采坑无数,最终得到这个网址十分感动,,,呜呜呜
看到这个图后,我还是大胆的选择了第一个,也就是文章所说的
于是开始了:
首先安装的驱动,我一开始想装-390,但后来还是悬崖勒马,要不然说不定又要重装系统了。
我直接在设置--软件和更新---附加驱动点击那个专有驱动,-384
然后点击应用更改,后重启成功
然后去官网下载cuda9.0:
输入:-smi
显示gpu信息。
从官网下载cuda:
本文需安装cuda9.1。
更新:sudo apt-get
sudo apt-get
1) 验证自己的电脑是否有一个可以支持CUDA的GPU
你可以电脑的配置信息中找到显卡的具体型号,如果你是双系统,在下的设备管理器中也可以查到显卡的详细信息;
你也可以在的终端中输入命令: $ lspci | grep -i ,会显示出你的 GPU版本信息,不过不是很详细。
2) 验证自己的Linux版本是否支持 CUDA( 16.04没问题)
输入命令:
$ uname -m && cat /etc/*
结果显示:
=
=16.04
......
3) 验证系统是否安装了gcc
在终端中输入: $ gcc –
结果显示:
gcc ( 5.4.0-~16.04.5) 5.4.0
......
若未安装请使用下列命令进行安装:
sudo apt-get build-
4) 验证系统是否安装了 和
a、查看正在运行的系统内核版本:
在终端中输入: $ uname –r
结果显示:
4.10.0-40-
b、在终端中输入:$ sudo apt-get linux--$(uname -r)
可以安装对应版本的 和
结果显示:
......
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。
表示系统里已经有了,不用重复安装。
若以上各项验证检查均满足要求,便可进行下面的正式安装过程。如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。
三、选择安装方式
CUDA提供两种安装方式: 安装和安装, 安装方式相对简单一些,但是我在阅读别人博客的过程中发现选择这种方式在安装过程中问题可能多一点,失败的概率较大。为了减少不必要的麻烦我选择安装方式。
下载cuda安装包:cuda官网下载,根据系统信息选择对应的版本,安装的话最后一项要选择 文件。
下载完后,用MD5 检验,如果序号不和,得重新下载(由于当时没有保存,这里我采用了别人的截图,注意这里的cuda版本号,人家采用的.0)
输入命令:$ .0..run
四、安装cuda
1) 禁用 驱动
终端中运行:$ lsmod | grep ,如果有输出则代表正在加载。需要我们手动禁掉。
的禁用方法:
a、在/etc/.d中创建文件-.conf
输入命令:$ sudo vi /etc/.d/-.conf (利用vi编辑器编辑和保存文件)
在文件中输入一下内容:
=0
b、执行:
$ sudo - –u
c、再执行:
$ lsmod | grep
若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。
按Alt + ctrl +F1进入命令行界面。
3) 输入 $ sudo stop 关闭图形化界面
4) 切换到cuda安装文件的路径:$ cd Home/
运行$ sudo sh .0..run
按照提示一步步操作注:a、一定要按照提示)输入相应字符,例如有的需要输入,有的需要输入yes;
不需要安装。
b、遇到提示是否安装 ,选择no(如果你的电脑跟我一样是双显,且主显是非的GPU在工作需要选择no,否则可以yes),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。
这是因为你的电脑是双显,而且用来显示的那块GPU不是,则 就不应该安装,否则你正在使用的那块GPU(非的GPU)的 会被覆盖,然后GUI就无法工作了。)
安装成功后,会显示,否则会显示。5) 输入 $ sudo start 重新启动图形化界面。
同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
如果你遇到了重复登陆情况,不用急着重装系统,官方教程上有提及,原因上一步的注中有提及,在安装时你可能不注意选择了yes,请卸载cuda,然后重装。
卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)
在登陆界面状态下,按Ctrl + Alt + f1,进入TUI
执行
$ sudo /usr/local/cuda-8.0/bin/.0.pl
$ sudo /usr/bin/-
然后重启
$ sudo
重新安装.run 再次安装时请一定留意,在提示是否安装时,你的是双显卡应该选则n。
6) 重启电脑,检查 Node 。
执行
$ ls /dev/*
可能出现a、b两种结果,请对号入座。
a、若结果显示
/dev/ /dev/ /dev/-uvm
或显示出类似的信息,应该有三个(包含一个类似/dev/-nvm的),则安装成功。
b、大多数结果可能会是这样
ls: /dev/*: No such file or
或是这样的,只出现
/dev/ /dev/
a中的一个或两个,但没有/dev/-num,即文件显示不全。
不用着急也不用急着重装系统(我在安装时就是这种情况),官方指导中有详细的解决方案,但是我的方法和官方稍微有些出入。
首先要添加一个启动脚本(添加启动脚本的方法大致有两种,我采用最直接的方法,另一种可以先创建一个文件然后通过mv的方式移动到启动文件夹下,可自行百度)
执行
$ sudo vi /etc/rc.local
如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是
#!/bin/sh -e
把-e去掉(这步很重要,否则它不会加载这文本的内容)
然后把下列内容除了#!/bin/bash外复制到其中,( exit 0 )保存退出。
#!/bin/bash
/sbin/
if [ "$?" -eq 0 ]; then
# Count the of found.
=`lspci | grep -i `
N3D=`echo "$" | grep "3D " | wc -l`
NVGA=`echo "$" | grep "VGA " | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/$i c 195 $i
done
mknod -m 666 /dev/ c 195 255
else
exit 1
fi
/sbin/ -uvm
if [ "$?" -eq 0 ]; then
# Find out the major used by the -uvm
D=`grep -uvm /proc/ | awk '{print $1}'`
mknod -m 666 /dev/-uvm c $D 0
else
exit 1
fi
下次重启时,你应该能直接看到/dev目录下的三个的文件
输入:$ ls /dev/*
结果显示:/dev/ /dev/ /dev/-uvm
成功!7) 设置环境变量。
终端中输入 $ sudo gedit /etc/
在打开的文件末尾,添加以下两行。
64位系统:
PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
=/usr/local/cuda-9.1/lib64\
${:+:${}}
32位系统:
PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
=/usr/local/cuda-9.0/lib\
${:+:${}}
保存文件,并重启。因为 /etc/是临时生效,重启电脑才是永久生效。
这里有点与官方安装文档稍有不同,需要说明:
官方文档里说只需在终端中运行上述两条语句即可,但如果不将它们不写入/etc/文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。
8) 重启电脑,检查上述的环境变量是否设置成功。
a、 验证驱动版本
敲入
$ cat /proc///
结果显示
NVRM : UNIX 384.81 Sat Sep 2 02:43:11 PDT 2017
GCC : gcc 5.4.0 ( 5.4.0-~16.04.5)
b、 验证CUDA
敲入
$ nvcc -V 会输出CUDA的版本信息
如果是这样的:
The 'nvcc' is not . You can it by :
sudo apt-get -cuda-
可能是环境配置没有成功,请重复上述步骤7)。
五、 尝试编译cuda提供的例子
1)打开终端输入:$ cd /home/xxx/-9. 其中xxx是你自己的用户名,通过命令cd进入-9.目录。
然后终端输入:$ make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。
第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc,
解决办法就是通过命令重新安装gcc就行,在终端输入:$ sudo apt-get gcc 安装完gcc后, 再make就正常了。
如果编译成功,最后会显示 CUDA ,如下图所示。
2)运行编译生成的二进制文件。
编译后的二进制文件 默认存放在-9./bin中。
接着在上一个终端中输入 :$ cd /home/lxxx/-9./bin//linux/ 其中xxx是你自己的用户名
然后在终端输入 :$ ./
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 = PASS代表成功,若失败 = FAIL
3)最后再检查一下系统和CUDA- 的连接情况
终端输入 : $ ./
看到类似如下图片中的显示,则代表成功
然后开始安装cudnn:
我选择的是.1.4,于是在官网下载了:
需要在官网下载,则需要注册账号,本文安装的是cudnn v7 则选择linux版,尾缀应是sol什么的,更改为tgz尾缀。
解压后名字为cuda,进入cuda的:
sudo cp cudnn.h /usr/local/cuda// #复制头文件
然后命令行进入 cudn/lib64 文件夹路径下,运行以下命令(CUDA 9.0也是一样的命令):
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/ sudo rm -rf .so .so.7 #删除原有动态文件
sudo ln -s .so.7.0.5 .so.7 #生成软衔接
sudo ln -s .so.7 .so #生成软链接
随后需要将路径/usr/local/cuda/lib64 添加到动态库:
输入:
sudo nano /etc/ld.so.conf.d/cuda.conf
输入文档里面:
/usr/local/cuda/lib64
然后按+x,输入:Y后回车退出。
终端下接着输入 sudo 命令使链接生效。
软链接后可以用sudo -v 命令查看是否链接成功:是否有/usr/local/cuda/lib64文件夹。命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:
nvcc: (R) Cuda