转载自:https://blog.csdn.net/jonms/article/details/79318566?utm_source=copy

如果之后要安装Tensorflow,建议安装CUDA9.0,安装步骤一致。

操作系统:Ubuntu16.04.3LTS 
显卡:NVIDIA GeForce GTX 960M

1、检查自己的计算机是否具备CUDA安装条件

1)检查GPU是否支持CUDA 
Windows下,可以通过NVIDIA GeForce Experience查看自己的GPU型号,或者通过百度、谷歌等搜索引擎来获取与自己PC相关的GPU信息。 
Linux下,可以在终端下键入

$ lspci | grep -i nvidia
1
显示出你的NVIDIA GPU版本信息 
 
然后去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中

2)验证自己的Linux版本是否支持 CUDA(Ubuntu 16.04和Ubuntu17.04都支持)

$ uname -m && cat /etc/*release
1
 
3)验证是否安装了gcc

$ gcc --version
1
 
如果没有,可以在终端键入

$ sudo apt-get install gcc
1
4)验证系统是否安装了kernel header和 package development

$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
1
2
满足要求后,便可进行下面的正式安装过程。

2、CUDA提供两种安装方式:package manager安装和runfile安装。 
这里我选择runfile安装,采用runfile安装,CUDA自带的驱动可能无法定位内核信息,所以我们先安装NVIIDA驱动。

3、安装NVIDIA驱动程序(如果事先有装但失败的,先卸载)

$ sudo apt remove --purge nvidia*
1
1)禁用nouveau驱动 
终端中运行:

$ lsmod | grep nouveau
1
如果有输出,则代表nouveau正在运行, 需要我们手动禁掉nouveau。

在Ubuntu16.04中,我们可以通过以下操作禁用nouveau:

a.在/etc/modprobe.d中创建文件blacklist-nouveau.conf

$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
1
在文件中输入以下内容: 
blacklist nouveau 
options nouveau modeset=0

b.执行

$ sudo update-initramfs -u
1
c.查看nouveau是否已经成功禁用

$ lsmod | grep nouveau
1
若无内容输出,则禁用成功,若仍有内容输出,请检查上述操作,并重复。 
操作无误但仍有输出,则可重启,进入用户登录界面时(不要登录进桌面),按Ctrl+Alt+F1进入字符终端界面,输入用户名和密码进行登录,登录成功后,再次查看

$ lsmod | grep nouveau
1
这时,我们已经成功禁用了nouveau,无输出 
2)关闭图形化界面

$ sudo service lightdm stop
1
3)安装驱动 
NVIDIA驱动安装也有多种方式,runfile文件形式的安装和apt安装

apt安装:

a.添加Graphic Drivers PPA

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
1
2
b.寻找合适的驱动版本

$ ubuntu-drivers devices
1
 
如上图,显示GTX 960M显卡建议的驱动版本是390

c.安装nvidia driver

$ sudo apt-get install nvidia-390
1
d.安装完成后,重启

$ sudo reboot
1
e.这时,执行下面的命令,查看驱动的安装状态

$ sudo nvidia-smi
$ sudo nvidia-settings
1
2

runfile文件安装:

runfile文件的安装先要安装gcc-multilib

$ sudo apt install gcc-multilib
1
接着,以NVIDIA-Linux-x86_64-390.25.run为例

$ sudo sh NVIDIA-Linux-x86_64-390.25.run
1
刚开始运行时,会有报错(预处理脚本错误,会问继续还是退出),不管错误继续,然后就是一路安装,重启即可。测试是否安装成功如上图所示。

4、安装CUDA 9.1 
到NVIDIA官网中,找到CUDA9.1并下载

之后,重启系统,在登录界面时按Ctrl+Alt+F1进入字符终端界面,登录成功后, 
关闭图形化界面

$ sudo service lightdm stop
1
找到下载文件的路径,键入下面的命令安装:

$ sudo sh cuda_9.1.85_387.26_linux.run
1
单击回车,直到提示“是否为NVIDIA安装驱动?” 
选择否,因为已经安装好驱动程序,其他都是默认。

最后你会看到cuda驱动、sample、tookit已经安装成功,但是缺少一些库。

添加这些库

$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
1
重新启动图形化界面

$ sudo service lightdm start
1
同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。 
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了 
重启电脑,检查Device Node Verification

$ sudo reboot
$ ls /dev/nvidia*
1
2
 
a、若结果显示

/dev/nvidia0    /dev/nvidiactl    /dev/nvidia-uvm
1
或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功。 
b、大多数结果可能会是这样

ls: cannot access/dev/nvidia*: No such file or directory
1
或是这样的,只出现

/dev/nvidia0    /dev/nvidiactl
1
a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。

解决方法: 
首先要添加一个启动脚本

$ sudo vim /etc/rc.local
1
这里附上rc.local的百度云链接: 
https://pan.baidu.com/s/1HU9QL6Qut3NubJw4RClmIQ,密码:r7j4

把文件的第一行的#!/bin/sh -e中的-e去掉, 
在#!/bin/sh和exit 0之间,添加以下内容 
 
保存文件并重启,再次查看,这时你应该能直接看到/dev目录下的三个nvidia的文件 
输入:

$ ls /dev/nvidia*
1
结果显示:

/dev/nvidia0    /dev/nvidiactl    /dev/nvidia-uvm
1
成功!

接着,设置环境变量。 
终端中输入

$ sudo vim /etc/profile
1
在打开的文件末尾,添加以下两行。 
64位系统:

$ export PATH=/usr/local/cuda-9.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
1
2
32位系统:

$ export PATH=/usr/local/cuda-9.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib:$LD_LIBRARY_PATH
1
2
保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。

重启电脑,检查上述的环境变量是否设置成功。 
a.验证驱动版本

$ cat /proc/driver/nvidia/version
1
 
b.验证CUDA Toolkit

$ nvcc -V
1

最后,我们需要尝试编译cuda提供的例子,看cuda能否正常运行 
打开终端输入

$ cd /home/user_name/NVIDIA_CUDA-9.1_Samples
$ make
1
2
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。 
如果编译成功,最后会显示Finished building CUDA samples,如下图所示。

运行编译生成的二进制文件。 
编译后的二进制文件默认存放在NVIDIA_CUDA-9.1_Samples/bin中。 
接着在终端中输入 :

$ cd bin/x86_64/linux/release
$ ./deviceQuery  
1
2
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL

最后再检查一下系统和CUDA-Capable device的连接情况 
终端输入 :

$ ./bandwidthTest
1
看到类似如下图片中的显示,则代表成功

cuDNN的安装是建立在我们成功安装cuda的基础上的,cuDNN同样需要我们去NVIDIA的官网下载适合cuda版本的deb文件或tgz文件。 
这里我以tgz文件的安装为例(cudnn-9.1-linux-x64-v7.tgz), 
首先解压tgz文件

$ tar -xzvf cudnn-9.1-linux-x64-v7.tgz
1
接着复制文件到cuda安装路径下,

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
1
2
3
也可以下载deb文件进行安装

$ sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.1_amd64.deb
1
2
3
最后,通过deb文件安装,/usr/src目录下会有cudnn_samples_v7,我们可以验证cudnn是否成功

$ cp -r /usr/src/cudnn_samples_v7 $HOME
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
1
2
3
4
成功安装,会提示“Test passed!”信息

如果提示库缺失错误,可参考以下命令

$ sudo cp /usr/local/cuda-9.1/lib64/libcudart.so.9.1 /usr/local/lib/libcudart.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcublas.so.9.1 /usr/local/lib/libcublas.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcurand.so.9.1 /usr/local/lib/libcurabd.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig
1
2
3
4
参考文章链接: 
1)http://blog.csdn.net/abc869788668/article/details/78331047 
2)http://blog.csdn.net/qlulibin/article/details/78714596 
3)http://www.cnblogs.com/devilmaycry812839668/p/6867780.html

CUDA9.1、cuDNN7在Ubuntu16.04上的安装相关推荐

  1. zabbix在ubuntu16.04上的安装

    开始安装 zabbix具体安装可以参考官方文档写的很详细,令人高兴的是现在有了中文的版本的翻译,这里简要说下. 上篇文章我写了在ubuntu14.04上安装zabbix,见这里http://www.c ...

  2. realsense R200在Ubuntu16.04上的安装

    走了一部分弯路,首先按照https://github.com/IntelRealSense/librealsense的内容安装,运行例子一直提示已经找到了Realsense传感器, 但就是链接不上,之 ...

  3. opencv3.4.0在ubuntu16.04上的安装

    这几天在学习pytorch,要用到opencv,所以重新安装了一下. 首先下载opencv3.4.0,直接去官网下就好了,解压.首先要切换到root用户. # mkdir build # cd bui ...

  4. 在ubuntu16.04上搭建svn服务器

    本文介绍在如何在ubuntu16.04 的系统上搭建svn服务器以及可能遇到的问题.下面的操作都以root用户进行. 1.安装svn服务器软件subversion. // 安装完成后的svn版本为 1 ...

  5. matlab plot symbol,导入时出错matlab.引擎不导入ubuntu16.04上python3.5.2中的matplotlib。为什么?...

    我在ubuntu16.04上使用python(3.5.2)中的matlab.engine(matlabr2016b), 遵循官方指示"MATLAB API for Python". ...

  6. ubuntu16.04上搭建stm32f4开发环境

    ubuntu16.04上搭建stm32f4开发环境 工程源码的地址 https://github.com/txson/ubuntu-stm32 欢迎大家参与修改 搭建交叉编译环境 stm32 属于ar ...

  7. win10上安装两个ubuntu16.04系统分别安装在SSD和HHD

    01.我的电脑硬件 SSD固态硬盘中装有win10系统 主板:华硕Z370-H gaming    Intel i7-8700k 显卡:微星RTX2080Ti 目前电脑上SSD 512G装有win10 ...

  8. 在Ubuntu16.04上安装Aegisub

    在Ubuntu16.04上安装Aegisub 最近迷上了外文剧,但是相当多的电视剧只有中文字幕,于是想自己做个字幕党,但是Linux底下的字幕软件并非很多,在经过几番查找之后安装了Aegisub. 操 ...

  9. Ubuntu16.04上NVIDIA Titan显卡出现屏幕分辨率失常

    Ubuntu16.04上NVIDIA Titan显卡出现屏幕分辨率失常 转载自露辉的博客,怕找不着了.hhhh https://blog.csdn.net/qq_28663263/article/de ...

最新文章

  1. AI时代人类需要具备的九种软技能,你get了几个?
  2. 代码格式化工具 uncrustify 配置文件选项详解
  3. 随机组卷python_关于随机自动组卷的算法,二维数组
  4. 怎么把线稿提取出来_ps提取线稿教程(ps怎么把图片的线稿弄出来)
  5. Building Seam 2.0 Application with NetBeans 6.1
  6. mysql数据压缩存储_压缩文本,然后存储在mysql数据库中
  7. 八邻域轮廓跟踪算法_结合mRMR选择和IFCM聚类的遥感影像分类算法
  8. mysql5.7下载及详细安装教程_MySQL 5.7 下载及安装教程(详细)
  9. 同一域名端口下,通过nginx部署多个vue项目
  10. CTO 离职、研发变动,百度外卖与饿了么组织架构融合公布
  11. 数据绑定(九)Binding的数据校验
  12. visio怎么画球_快速学习Visio 门球制图
  13. 流媒体管理服务器显示不可用,部署国标流媒体服务器成功后无法播放视频问题步骤排查...
  14. powerDesign逆向工程Mysql转Oracle
  15. 比特彗星(Bitcomet_1.95)最新官方安装包下载
  16. jquery高级之妙味云课堂笔记
  17. KVM虚拟化常用API
  18. 反向代理为何叫反向代理?
  19. 使用Python爬取豆瓣电影 Top 250
  20. qq屏幕识图如何一次复制所有文字

热门文章

  1. strapi终于装好了,网速太慢了,处理了一下代理,新建了一个.zshrc文件,加入了pon和poff两个函数
  2. STM32小项目之dht11在oled上显示温湿度
  3. Linux服务器批量管理工具 - TeamRemote
  4. android文本自动添加图片,Android textView文字添加图片 imageSpan使用
  5. 前端小白初识CMD(dos窗口命令)
  6. python人像录制加声音_简单易用的录制屏幕与摄像头工具
  7. 拉里·埃里森和历史上最牛的演讲【转】
  8. 融资融券黑马选股分析系统主力意图大资金流出流入短线涨停板股票炒股软件
  9. 高德地图如何取消订单_高德地图怎么取消订单
  10. pdf文档转化为doc文档 (转载)