之后我们再切换到我们cuda文件的位置,在我这里就是在当前目录下,然后我们运行它:
sudo sh cuda_9.0.xx_xx_linux.run
对应自己的文件名称。之后我们进入nvidia的协议里面,需要我们看他的协议:
我们敲回车,敲到100%
之后它显示问我们是不是接受这个东西,我们在终端输入accept。
然后提示是否安装nivdia的驱动,我们不需要安装这个,输入n,之后敲回车:
遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作需要选择no,否则可以yes),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。 这是因为你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则你正在使用的那块GPU(非NVIDIA的GPU)的OpenGL Libraries会被覆盖,然后GUI就无法工作了。)
安装成功后,会显示installed,否则会显示failed。
之后我们重新启动图形化界面:
sudo service lightdm start
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。如果不能进入的话,参考以下方案,否则跳过:
如果你遇到了重复登陆情况,不用急着重装系统,官方教程上有提及,原因上一步的注中有提及,在安装openGL时你可能不注意选择了yes,请卸载cuda,然后重装。
卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)
在登陆界面状态下,按Ctrl + Alt + f1,进入TUI
执行
$ sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
$ sudo /usr/bin/nvidia-uninstall
然后重启
$ sudo reboot
重新安装.run 再次安装时请一定留意,在提示是否安装OpenGL时,你的是双显卡应该选则n。
进入ubuntu之后我们重启电脑:
sudo reboot
之后检查Device Node Verification
ls /dev/nvidia*
包含一个类似/dev/nvidia-uvm的,则安装成功。
大多数结果可能会是这样
ls: cannot access/dev/nvidia*: No such file or directory
或是这样的,只出现
/dev/nvidia0 /dev/nvidiactl
a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。
不用着急也不用急着重装系统(我在安装时就是这种情况),官方指导中有详细的解决方案,但是我的方法和官方稍微有些出入。
首先要添加一个启动脚本(添加启动脚本的方法大致有两种,我采用最直接的方法,另一种可以先创建一个文件然后通过mv的方式移动到启动文件夹下,可自行百度)
执行
$ sudo vi /etc/rc.local
如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是
#!/bin/sh -e
把-e去掉(这步很重要,否则它不会加载这文本的内容)
然后把下列内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出。
#!/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
下次重启时,你应该能直接看到/dev目录下的三个nvidia的文件
输入:$ ls /dev/nvidia*
结果显示:/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
成功!
由于我这里是一次成功,所以上述方案仅供参考,并没有实践过。
接下来我们设置环境变量:
sudo gedit /etc/profile
上述命令会打开一个文件,我们在末尾添加两行:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
我这里装的是cuda9.0如果你们装的不是的话,这个cuda-9.0这个目录就还得改一下。
如果是32位系统的话:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
之后我们选择重启电脑:
sudo reboot
a.之后我们检查上述环境是否设置成功:
cat /proc/driver/nvidia/version
得到上述结果。
b.再验证CUDA Toolkit:
nvcc -V
得到下图结果:
如果你的是:
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
这样的话,那就表明环境变量没有添加成功,你需要按照上文中说的添加环境变量,再去添加一下。
接下来我们尝试编译一下cuda的例子:
我们首先需要进入NVIDIA_CUDA-9.0_Samples这个文件夹下面,在这下面打开终端,然后make一下:
我这里的话也是一次就成功了,如果出现没有gcc报错的话,我们可以安装一下:
sudo apt-get install gcc
如果编译成功,最后会显示Finished building CUDA samples,如下图所示:
之后的话,我们运行编译生成的二进制文件:进入到这个NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release文件夹下面,输入:./deviceQuery
./deviceQuery
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL:
最后再检查一下系统和CUDA-Capable device的连接情况:
终端输入 : $
./bandwidthTest
看到类似如下图片中的显示,则代表成功:
4.安装cudnn:
我们需要进入nvidia的官网:https://developer.nvidia.com/rdp/cudnn-archive,区选择我们需要的版本:
然后提示我们登录,有帐号的话就登录,没有的话就注册一个:
之后我们点击上图的安装包进行下载:
我们将其解压,解压之后名称会变为cuda:
之后我们将其移入home文件夹下面,然后进入cuda的include文件夹下面,执行下面这个命令复制头文件:
sudo cp cudnn.h /usr/local/cuda/include/
之后在终端进入cuda/lib64文件夹下面,运行以下命令:
#复制动态链接库
sudo cp lib* /usr/local/cuda/lib64/
#删除原有动态文件
1. cd /usr/local/cuda/lib64/ 2. sudo rm -rf libcudnn.so libcudnn.so.7
#生成软衔接
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7
#生成软链接
sudo ln -s libcudnn.so.7 libcudnn.so
随后需要将路径/usr/local/cuda/lib64 添加到动态库:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件里面输入:
/usr/local/cuda/lib64
终端下接着输入命令使链接生效:
sudo ldconfig
之后查看一下是否链接成功:
sudo ldconfig -v
可以看到,我们这里是有这个文件的。ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
之后用下面这个命令查看是否安装成功:
5.安装Tensorflow:
我们首先看一下有没有python:
一般都有,没有的话安装一下:
之后安装一下pip:
sudo apt-get install python-pip
更新一下pip:
sudo pip install -U pip
安装tensorflow-gpu 1.9.0:
sudo pip install tensorflow-gpu==1.9.0
之后进入python输入以下命令:
1. import tensorflow as tf 2. print(tf.__version__)
我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!