您的位置:首页 > 其它

Ubuntu 16.04 安装cuda9.0 &cudnn7.0 之妙法:NVIDIA 驱动->cuda->cudnn->安装tensorflow-gpu(windows 也可参考),试一下?

2018-11-19 21:44 816 查看

1. 安装Ubuntu16.04

系统下载地址: http://releases.ubuntu.com/16.04/
下载64位系统:ubuntu-16.04.4-desktop-amd64.iso
制作系统盘安装,推荐使用rufus,这个简单便捷,大力推荐。
下载网址:https://rufus.ie/en_IE.html
(随便科普下,后续要在windows上重装系统,没必要制做U盘启动盘了),直接在系统之家或者直接搜索在线重装系统就可以了,大把的软件可以使用,方便快捷,傻瓜式安装,全程不费心!!
点击rufus的 exe后,会出现以下界面

插上U盘,会自动识别,上面镜像文件选择自己下载好的镜像iso文件就好,然后分区类别基本上可以不动的,MBR和GPT看自己的电脑适合,不过还是一般推荐MBR的分区类型,具体的区别可以去查下!
然后就是开始就好了,等待镜像制作完毕!

重装系统时就是插入电脑上重启时,进入 BIOS 的界面(一般是按F10或者F12),这个看电脑类型吧,可以查看下自己的电脑是哪种!
这是第二步,也是重要的一步,针对于新装Tensorflow和Cuda,Cudnn的同学,建议一步一步来,不要急!
大体步骤: 安装NVIDIA驱动 – > 安装Cuda --> 安装CUDNN – > 安装Tensorflow-gpu,记得哦,不要乱了次序!!

2.安装NVIDIA驱动

2.1 修改更新源
系统安装完成后,应该首先修改的更新源,
输入
sudo apt-get update
或者
sudo apt-get upgrade

2.2 驱动下载和安装以及一些问题解决
接下来开始安装NVIDIA驱动了,我的显卡是GTX1080Ti,安装显卡驱动有3种方法:
1.系统更新驱动
2.添加官方ppa源
3.NVIDIA官网下载安装
感兴趣的同学可以去查找对应的安装方式,这里我选择的安装方式是去NVIDIA官网下载Linux版本的驱动,
官网地址:https://www.geforce.cn/drivers 或者 https://www.nvidia.cn/Download/index.aspx?lang=cn
建议去左边的地址可以选择版本,右边的地址会直接给你推荐最新版本,选择你对应版本的系列选择,操作系统别选错了

搜索出来这么多结果,先别急着下载,BETA版本为测试版就别下载了,其次这么多版本,到底下载哪个比较好,比如我们图上第二个版本是390.77,这需要看我们CUDA的版本要求的驱动版本是多少
我们打开CUDA下载网站:https://developer.nvidia.com/cuda-downloads
我这里目前最新的版本是CUDA9.2,再选择了一系列的选项后会给出CUDA9.2的下载地址如下图:

可以看到,下载的文件名为cuda_9.2.148_396.37,这个396.37就是我们NVIDIA驱动版本的最低要求,可是显卡驱动目前提供的Linux版本最高也就390.77,所以我们不能安装CUDA9.2,于是我选择安装CUDA9.0,下面给出一个驱动要求表格,如果要下载CUDA其他版本请到cuda的存档地址:https://developer.nvidia.com/cuda-toolkit-archive

上面讲了这么多,终于要开始安装NVIDIA驱动了,CUDA9.0文件可以先下载好
1)打开终端,先删除旧的驱动:

**sudo apt-get purge nvidia**

2)禁用自带的 nouveau nvidia驱动
先执行下面命令,可以发现会显示一些东西,我们现在要禁用掉,使它不显示出来

**lsmod | grep nouveau**

执行以下命令创建一个文件

**sudo gedit /etc/modprobe.d/blacklist-nouveau.conf**

并添加如下内容:

**blacklist nouveau
options nouveau modeset=0**

然后保存文件退出,执行下面命令更新一下

sudo update-initramfs -u

然后重启电脑,重启后打开终端再次输入命令

**lsmod | grep nouveau**

如果发现什么都没显示,那么说明禁用nouveau 成功了,然后开始安装NVIDIA驱动

首先按Ctrl+Alt+F1进入控制台,然后输入用户名密码登陆,执行下面命令关闭图形界面

**sudo service lightdm stop**

然后跳转到存放文件的路径再运行安装文件,比如我的文件放在Downloads目录下,命令如下:

cd Downloads
sudo sh NVIDIA-Linux-x86_64-390.42.run --no-opengl-files

必须加上 --no-opengl-files ,否则会出现题主要是三种,
(1)循环登录,也就是登录之后在退出来到登录界面;
(2)界面变得很大,看着心慌,哈哈;
(3)登录进去了,显示正常了,结果只有桌面背景和鼠标等等
安装过程种有出现提示选项,这里主要注意两点(如果看不懂选项的英文,自己查字典):
第一点(不是所有电脑都会遇到,如果没有请忽视这
第一点是安装提示 “sign the kernel module” 安装过程中提示是否sign the kernel module(为内核模块签名)
我当时是选择了不签名安装,于是我这里出现了错误提示 log:/ver/log/nvidia-installer.log ,查找到了相关文章:https://blog.csdn.net/lipi37/article/details/79465685
大意是在支持UEFI的设备上打开Secure Boot 后,Ubuntu 16.04对于添加到内核的模块更加保守, 需要持有签名才能添加到模块中, 而显卡驱动由于要添加到内核中, 所以需要签名. 在安装过程中我们也会看到NVIDIA显卡会提示是否生成签名. 如果生成成功则没有问题。如果不想生成签名就需要进入BIOS关闭Secure Boot,在Key Management中Clear Secure Boot keys。虽然找到了解决办法但我还是选择生成签名。
选择生成签名安装,参考文章:https://www.geek-share.com/detail/2726402241.html 。接下来会继续问使用已有的密钥给模块签名还是重新生成。这里选在重新生成密钥。继续下去之后,密钥会在/usr/share/nvidia/下生成一个nvidia*.der(私钥)文件和nvidia*.key(公钥)文件(这些都不用管),当提示是否删除已生成的密钥文件时,选择不删除,因为之后要用到这两个文件。继续安装程序到最后会提示无法启动模块。这是因为生成的密钥还没有添加到内核的信任库中,我们在安装完成后再导入。
第二点提示是”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,选择 No。
待安装结束后,添加密钥到内核的信任列表中:

sudo /etc/init.d/lightdm start      //打开图形界面
sudo mokutil --import /usr/share/nvidia/nvidia*.der    //必须加上 sudo

接下来提示输入密码,再次输入密码,然后

sudo  reboot  //重启

在电脑刚启动的时候会出现一个界面,就是叫你添加密钥操作,选择 “enroll the mok” ,然后按照步骤操作,输入密码什么的,如果进错了就再执行上面的 sudo mokutil…
导入成功后就进入系统就可以了,图如下(取自http://elrepo.org/tiki/SecureBootKey):

进入系统后测试一下是否安装成功

nvidia-smi

nvidia-settings

出现类似下面的显示,则安装成功

3.安装CUDA9.0

在上面已经说过了,CUDA9.2版本所需要的显卡驱动版本过高,所以这里我选择安装CUDA9.0(CUDA9.1也支持)
安装方法和上面类似
首先按Ctrl+Alt+F1进入控制台,然后输入用户名密码登陆,执行下面命令关闭图形界面

sudo service lightdm stop

然后跳转到存放文件的路径再运行安装文件,比如我的文件放在Downloads目录下,命令如下:

cd Downloads
sudo sh cuda_9.0.176_384.81_linux.run

安装开始以后,首先是一个协议,一直按空格到底以后,输入accept。其他的操作如下所示:

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n(记得这里输入 n, 因为你已经之前安装过了,所以没必要安装了,而且通过这个安装会出现一些问题,莫名其妙的那种)

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y

复制代码
第二个安装显卡驱动一定要选择no,否则之前安装的驱动就白装了,有默认选项的直接选择默认选项就可以了(直接回车)
安装完成后,打开图形界面配置环境变量,运行如下命令打开profile文件

sudo service lightdm start   //打开图形界面
sudo gedit  /etc/profile

打开文件后在文件末尾添加路径,也就是安装目录,命令如下:

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

保存后执行一个命令后重启电脑

sudo ldconfigsudo reboot

查看版本和测试CUDA的例子
查看版本

nvcc --version

编译例子测试

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

执行成功的话会出现下面信息:

编译例子的时候如果报错显示:CUDA driver version is insufficient for CUDA runtime version 解决方法卸载重新安装参考文章:https://www.cnblogs.com/wolflzc/p/9117291.html

找到对应版本,下载后先把前面的安装的卸载再安装
如果安装错了版本比,如我一开始装了CUDA9.2,卸载操作如下:

sudo apt-get remove cuda

sudo apt-get autoclean

sudo apt-get remove cuda*

然后在目录切换到/esr/local/下

cd /usr/local/
sudo rm -r cuda-9.2

然后按照前面的安装CUDA的教程来就可以了
接下来再添加下环境变量

sudo gedit ~/.bashrc

打开文件后,将下面内容添加到文件的最后面,保存后退出

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}}

然后设置环境变量和动态链接库,在命令行输入:

sudo gedit /etc/profile

在打开的文件末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

保存之后,创建链接文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件中添加如下语句:

/usr/local/cuda/lib64

然后执行,使链接立即生效

sudo ldconfig

4.安装cuDNN7.0

下载地址:https://developer.nvidia.com/rdp/cudnn-archive
进去后下载自己对应的CUDA版本的cudnn文件,如下图:

我是选择 cuDNN v7.0.5 Library for Linux 千万别选[Power8]的版本,我查了一下,这个是给Power8处理器使用的,由于v7.1.2版本还没提供普通版本,所以就下载了v7.0.5
这里下载是需要注册登陆的,要填一些调查表什么的之后才能下载,如果版本和我相同我这里提供cuDNN的百度云下载地址:
链接:https://pan.baidu.com/s/1Yi6IkjUDbiBmAd9Dm4YruQ 密码:k73g
安装过程也比较简单,下载后是一个压缩包,解压下来放在cuda的路径中就可以了
继续Ctrl+alt+F1进入命令模式,关闭图形界面

sudo service lightdm stop

使用命令解压文件cudnn-9.0-linux-x64-v7.tgz,并且复制到cuda路径中

tar -zxvf cudnn-9.0-linux-x64-v7.tgz
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/

然后更新网络连接:

cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.0.5  //自己查看.so的版本 对应更改
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig

重新启动图形化界面

sudo service lightdm start

没有显示出图形界面的话 按Ctrl+Alt+F7进入图形界面

安装完成后可用 nvcc -V 命令验证是否安装成功,若出现版本信息则表示安装成功
到这一步已经大功告成了,接下来就安装Anaconda,配置Python,tensorflow等软件

5.安装Tensorflow-gpu版本,如果此时你都完成了,那么恭喜你可以安装Tensorflow-gpu版本了,然后安装方式推荐是通过pip安装,输入命令:

pip install tensorflow-gpu

如果通过Anaconda安装会出现一些问题,切记,因为Anaconda自带安装cuda和cudnn等,看着方便,其实安装了会出现一些问题,很淡疼。。如果可以还是通过pip安装,推荐的!

安装好了就是进入python编译器,输入:

import tensorflow as tf

查看是否可以引入,然后尝试一些输出就可以了!

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: