Ubuntu16.04安装cuda9.0+cudnn7.0

这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudnn。但是最近课余时间还行,索性一起整理出来,方便以后查看。

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

  • 检查GPU是否支持CUDA

    lspci | grep -i nvidia

    显示出NVIDIA GPU版本信息

  • 去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中(https://developer.nvidia.com/cuda-gpus

    uname -m && cat /etc/*release

  • 验证是否安装了gcc

    gcc --version

    如果没有,那就安装之

    sudo apt install gcc
  • 验证系统是否安装kernel header和 package development

    uname -r
    sudo apt install linux-headers-$(uname -r)

    满足要求后,便可进行下面的正式安装过程。

    注意:CUDA提供两种安装方式:package manager安装和runfile安装。

    这里我选择runfile安装.。采用runfile安装,CUDA自带的驱动可能无法定位内核信息,所以我们先安装NVIIDA驱动。

安装NVIDIA驱动

  • 事先有装过但失败的,先卸载

    sudo apt remove --purge nvidia*
  • 禁用nouveau驱动

    lsmod | grep nouveau

    有输出,则代表nouveau正在运行, 需要我们手动禁掉nouveau。

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

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

    sudo vim /etc/modprobe.d/blacklist-nouveau.conf

    在文件中输入以下内容:

    blacklist nouveau
    options nouveau modeset=0

    2)执行

    sudo update-initramfs -u

    3)查看nouveau是否已经成功禁用

    lsmod | grep nouveau

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

    这时,我们应该已经成功禁用了nouveau,无输出

  • 关闭图形化界面

    sudo service lightdm stop
  • 安装驱动

    NVIDIA驱动安装也有多种方式,runfile文件形式的安装和apt安装

    我用的是apt安装:

    1).添加Graphic Drivers PPA

    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt-get update

    2).寻找合适的驱动版本

    ubuntu-drivers devices

  如上图,我的显卡它建议的是 nvidia-418

  3).安装nvidia driver
 sudo apt install nvidia-418

速度比较慢,应该不是ubuntu源的问题,用了墙外的服务器apt install速度也还是不快,安心等”戴“吧

  4).安装完成后,重启
 sudo reboot
  5).进入桌面,执行下面的命令,查看驱动的安装状态
 sudo nvidia-smi
sudo nvidia-settings
![](https://img2018.cnblogs.com/blog/1092854/201903/1092854-20190327215611050-860464418.png)

安装CUDA

之后,按Ctrl+Alt+F1进入字符终端界面,登录后关闭图形化界面

sudo service lightdm stop

这边我其实用的是命令行直接下载,因为我不喜欢等下再去找文件,而且cuda那个貌似直接下载也有点毒,每次到最后就停在那里了,令人生气,所以可以的话我一般用命令行下载(下面就有一个例子)

wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run

找到下载文件,键入类似命令安装:

sudo sh cuda_9.0.176_384.81_linux-run

会有很长一段,直接ctl+c跳过,出现类似下面的选项,除了第二个选择“是否为NVIDIA安装驱动”,

选择否,不然之前的显卡驱动就白折腾了。

可以按给出的选择

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

添加这些库
sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  重新启动图形化界面
sudo service lightdm start
  同时按Alt + ctrl +F7,返回到图形化登录界面。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了

  检查Device Node Verification
ls /dev/nvidia*

  a、若结果显示
/dev/nvidia0    /dev/nvidiactl    /dev/nvidia-uvm
  或显示出类似的信息,应该有三个(包含一个/dev/nvidia-uvm的),则安装成功。

如果只有两个或者一个都没有,文末有记录解决方法。

  设置环境变量
sudo vim ~/.bashrc

注意:.bashrc是当前用户生效的环境变量,(比如我是lzm)如果想对全部用户生效,可以在/etc/profile文件中设置

  按i(inset)进行编辑,在打开的文件末尾,添加以下两行,然后按esc 后按:wq保存退出
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
  保存文件,让环境变量生效
source ~/.bashrc
  检查上述的环境变量是否设置成功。

  a.验证驱动版本
cat /proc/driver/nvidia/version
  b.验证CUDA Toolkit
nvcc -V
  c.最后,尝试编译cuda提供的例子,看cuda能否正常运行

  打开终端输入
 cd /home/lzm(user_name)/NVIDIA_CUDA-9.0_Samples
make

系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。如果编译成功,最后会显示Finished building CUDA samples。运行编译生成的二进制文件,编译后的二进制文件默认存放在NVIDIA_CUDA-9.0_Samples/bin中。

  接着在终端中输入 :
 cd bin/x86_64/linux/release
./deviceQuery
  结果如下图所示,其中 Result = PASS代表成功,CUDA安装且配置成功,若失败 Result = FAIL

  最后检查一下系统和CUDA-Capable device的连接情况
./bandwidthTest

  看到显示Result=PASS则成功

![](https://img2018.cnblogs.com/blog/1092854/201903/1092854-20190327220028933-368340141.png)

安装CUDNN

cuDNN的安装是建立在我们成功安装cuda的基础上的,本来我是想用终端直接下载cudnn的像上面的cuda一样,但是当我wget的时候发现报错了:(HTTP request sent, awaiting response… 404 Not Found) 才想起来cuDNN是需要登陆NVIDIA账号才能下载的。

官网下载连接

这里我以tgz文件的安装为例

Attention:

(这边有个要注意的,因为我之前下载过的是tgz压缩包,直接按下面命令解压就行。然后今天下载是以solitairetheme8结尾的,然后刚开始我不知道linux是用什么命令解压这种文件的,所以就去查了一下,就是直接重命名这玩意然后按下面命令解压就

Ubuntu16.04安装cuda9.0+cudnn7.0的更多相关文章

  1. ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务

    [摘要] docker很好用,但是在GPU服务器上使用docker却比较复杂,需要一些技巧,下面将介绍一下在ubuntu16.04环境下的GPU-docker环境搭建过程. 第一步: 删除之前的nvi ...

  2. ubuntu16.04安装tensorflow-gpu和cuda8.0加速训练

    转载请注明出处:http://www.cnblogs.com/buxizhizhoum/p/8086230.html 环境: 系统:ubuntu 16.04 cpu:i5 gpu:gt920m mem ...

  3. Ubuntu16.04 安装cuda9.0 cudnn 7.0.5

    参考网址:https://blog.csdn.net/zhuangwu116/article/details/81063234 (1)下载安装文件: 下载cuda9.0 runfile 文件 下载地址 ...

  4. Ubuntu16.04 安装 CUDA9.2(总结一些新手容易遇到的问题)

    系统:Ubuntu16.04 64bit 显卡:Nvidia GEFORCE 940MX 驱动:NVIDIA-Linux-x86_64-396.18.run 软件:cuda_9.2.88_396.26 ...

  5. Ubuntu16.04安装Ambari 2.7.3

    概念了解 Ambair介绍 Apache Ambari是一个用于支持大数据软件供应 管理与监控软件.它也是一个分布式软件,分为Ambair-Server与Ambari-Client两个部分.在生产环境 ...

  6. Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04

    目录 Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04 0. 前记 1. 环境说明 2. 安装GTX1080显卡驱动 3. CUDA 9.0安装 ...

  7. ubuntu 16.04 +anaconda3.6 +Nvidia DRIVER 390.77 +CUDA9.0 +cudnn7.0.4+tensorflow1.5.0+neural-style

    这是我第一个人工智能实验.虽然原理不是很懂,但是觉得深度学习真的很有趣.教程如下. Table of Contents 配置 时间轴 前期准备工作 anaconda3 安装 bug 1:conda:未 ...

  8. ubuntu18.04下搭建深度学习环境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原创】【学习笔记】

    PC:ubuntu18.04.i5.七彩虹GTX1060显卡.固态硬盘.机械硬盘 作者:庄泽彬(欢迎转载,请注明作者) 说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9 ...

  9. ubuntu16.04安装cuda8.0试错锦集

    ubuntu16.04安装cuda8.0试错锦集 参考文献: [http://www.jianshu.com/p/35c7fde85968] [http://blog.csdn.net/sinat_1 ...

随机推荐

  1. SpringBoot+thymeleaf+security+vue搭建后台框架 基础篇(一)

    刚刚接触SpringBoot,说说踩过的坑,主要的还是要记录下来,供以后反省反省! 今天主要讲讲 thymeleaf+security 的搭建,SpringBoot的项目搭建应该比较简单,这里就不多说 ...

  2. 观察者模式 vs 发布-订阅模式

    我曾经在面试中被问道,_“观察者模式和发布订阅模式的有什么区别?” _我迅速回忆起“Head First设计模式”那本书: 发布 + 订阅 = 观察者模式 “我知道了,我知道了,别想骗我” 我微笑着回 ...

  3. C#面向对象基本概念总结

    快过年了,发一篇自己的复习总结.以下内容均是个人理解,如文章有幸被浏览,如有错误的地方欢迎大家提出,相互学习相互进步! 面向对象三大基本特征:封装,继承,多态 一.类 (对象声明的三种方式:以普通基类 ...

  4. [BJOI2019]奥术神杖(分数规划+AC自动机+DP)

    题解:很显然可以对权值取对数,然后把几何平均值转为算术平均值,然后很显然是分数规划.先对每个模式串建立AC自动机,每个节点w[i],sz[i]分别表示以其为前缀的字符串,然后再二分最优解k,然后w[i ...

  5. git最基础操作一

    1. 从远端克隆:git clone -b 克隆的分支 git的地址( eg:git clone -b master https://gitee.com/test/test.git ) 2.提交修改的 ...

  6. Redis源码 - 事件管理

    Redis 的事件分类 分类 描述 定时器 线程内定时响应,更新缓存时间.关闭非活动的客户端连接等等 pipe 线程间通信,用于其他线程通知主线程退出aeApiPoll() unixsocket 本地 ...

  7. [Android] Android 最全 Intent 传递数据姿势

    我们都是用过 Intent,用它来在组件之间传递数据,所以说 Intent 是组件之间通信的使者,一般情况下,我们传递的都是一些比较简单的数据,并且都是基本的数据类型,写法也比较简单,今天我在这里说的 ...

  8. P1972 [SDOI2009]HH的项链

    洛谷的分块练习题 看到讨论中说分块莫队被卡就写了树状数组...(但感觉做法和莫队的思想有点像?) #include<bits/stdc++.h> using namespace std; ...

  9. centos 7.2下搭建vsftp 虚拟用户

    虚拟用户搭建vsftp 要求一: 只允许上传 下载 不能删除 不能更换名称 yum install pam* yum install db4* -y yum install vsftpd chkcon ...

  10. exists,in的区别-mysql

    如说两张表一张是用户表TDefUser(userid,address,phone),一张是消费表TAccConsume(userid,time,amount),我要查消费超过5000的用户记录,那么我 ...