Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]目录1.cuda的安装   1.1最简单的方法——分开安装驱动和cuda   1.2更万能的方法——同时安装驱动和cuda   1.3 终极杀手锏2.cudnn的安装安装之前首先要确认你需要安装的cuda和cudnn的版本,假如你后续还需要安装tensorflow的话,请看我的另外一篇博客,确认你需要的版本。1.cuda的安装cuda的安装比较费事…

大家好,又见面了,我是你们的朋友全栈君。

目录

1.cuda的安装

     1.1 最简单的方法——分开安装驱动和cuda

     1.2 更万能的方法——同时安装驱动和cuda

     1.3  终极杀手锏

2.cudnn的安装


安装之前首先要确认你需要安装的cuda和cudnn的版本,假如你后续还需要安装tensorflow的话,请看我的另外一篇博客,确认你需要的版本。

1.cuda的安装

cuda的安装比较费事,本人花了四天时间查看了各种博客和官网教程才安装成功。下面的3种方法都是实际测试过的方法,可以成功安装cuda8.0和cuda9.0。

(1)下载安装文件。首先去英伟达官网下载cuda安装包https://developer.nvidia.com/cuda-toolkit-archive

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

按照系统配置选择安装包,据说用deb文件安装容易出错,所以直接下载runfile(后缀为.run)文件来安装,例如我想安装cuda9.0,且我的操作系统为Ubuntu16.04,所以我按照下图选择安装包:

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

(2)安装cuda。cuda8.0和cuda9.0都集成了nvidia显卡驱动,按照安装cuda的同时是否安装显卡驱动可以分为不带驱动的安装方法和带驱动的安装方法。下面有三种方法,第一种如果搞不定就试试第二种,第二种如果还搞不定,那就看第三种。可能比较高端的显卡(比如1080Ti、泰坦)直接用第一种方法就能搞定,而比较差的显卡就需要第二种甚至第三种方法才行,本人的显卡非常垃圾,用第三种方法才安装成功。

     1.1 最简单的方法——分开安装驱动和cuda

(1)更新系统的驱动。

系统设置-》软件和更新-》附加驱动-》更新nvidia和intel

假如更新驱动出现了循环登录系统的问题,请先卸载驱动,然后使用带驱动的安装方法来解决问题(万能药)。

此时驱动的卸载方法:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)

在登陆界面状态下,按Ctrl + Alt + f1,进入TUI执行

sudo /usr/bin/nvidia-uninstall

然后重启

sudo reboot

(2)安装cuda。

执行如下命令:

sudo sh cuda_9.0.176_384.81_linux.run

然后用一本书的书角压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:

accept

n(不要安装driver)

y

y

y

安装完成后,设置环境变量。

      (3)设置环境变量。

打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/home/wangyuanwei下,如果没有找到,则按Ctrl+H键显示隐藏文件。

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

终端运行:source ~/.bashrc

检查:nvcc –version,如果显示下面的文子就说明安装成功了。

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

     1.2 更万能的方法——同时安装驱动和cuda

这种安装方法不需要在安装cuda之前安装显卡驱动,但是安装方法比较复杂,如果前一种方法安装不成功的话可以参考这个方法。

具体步骤可以参考该链接https://blog.csdn.net/qlulibin/article/details/78714596

 

     1.3  终极杀手锏

假如前面两种方法都没有解决问题的话,可以继续看这种方法。其实这也不算是一种方法,这只是对第二种方法的要点强调而已。

其实cuda安装不上的根本原因都是没有仔细看官网的安装指导,在下载cuda安装文件的时候,在那个界面的最下方有一个安装指导书( Installation Guide for Linux),按照官网的指导应该是可以正确安装的。

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

这里提一个注意点:大多数人没有安装成功就是因为系统不满足要求,下图是cuda9.0的系统需求:

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

就本人的亲身经验,这个表里面最有用的信息就是系统内核的版本 绝大部分人安装不上cuda可能就是系统内核的版本过高,cuda要求系统内核是4.4,而我们的系统大多是4.13,降低系统内核后,问题一般就解决了。

降低系统内核的方法就是直接用新内核替换旧内核,具体方法请参考百度经验(亲测有效,就是开机的时候会出现一些警告信息,不用搭理就好了):https://jingyan.baidu.com/article/5552ef47fe57b6518ffbc991.html

降低系统内核后再试试方法1或者方法2应该就能解决问题。如果还不能解决问题,建议耐心的阅读官网的安装指导书。

2.cudnn的安装

cudnn的安装非常简单,

(1)下载安装文件

按需求下载cudnn的安装文件https://developer.nvidia.com/rdp/cudnn-archive

(2)安装cudnn

解压下载的文件,可以看到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

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

(3)查看cudnn版本

在终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果出现下图所示版本信息,说明安装成功。 

Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132989.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java128陷阱

    java128陷阱public static void main(String[] args){ Integer a=128; Integer b=128; System.out.print(a==b);//false a=127; b=127; System.out.print(a==b);//true}为什么对于一个Integer来说,两个Integer都为128的时候通过判断为false,127时的却是true呢?其实这一切都是因为Java中的装箱

    2022年8月8日
    5
  • ASP.NET 如何使用 SqlTransaction

    ASP.NET 如何使用 SqlTransactiontransaction属性: 1.原子性:事务是一个完整的操作,事务的各元素师不可分的。2.一致性:事务开始时和完成时,数据必须处于一致的状态。3.隔离性:对数据进行修改的所有并发事务是彼此隔离的。4.持久性:事务完成后,它对系统的影响是永久的。  ASP.NET使用SqlTransaction处理事务操作 SqlTransaction类是对SQLSe

    2022年5月1日
    35
  • 打印机显示smtp服务器未设置,打印机smtp服务器设置

    打印机显示smtp服务器未设置,打印机smtp服务器设置打印机smtp服务器设置内容精选换一换安装完模型小型化工具,量化模型前,用户需要获取并安装Caffe源代码增强包caffe_patch.tar.gz,在Caffe源码中增加部分源码文件、动态库文件及修改部分源代码。安装过程整体分为两部分:拷贝新增源码和动态库文件到Caffe环境caffe-master工程目录下。对Caffe环境caffe-master工程目录下部分文件安装p本文档所述Demo在…

    2022年10月20日
    3
  • 详解List的toArray()方法和toArray(T[] a)方法

    详解List的toArray()方法和toArray(T[] a)方法这两个方法都是将列表List中的元素转导出为数组,不同的是,toArray()方法导出的是Object类型数组,而toArray[T[]a]方法导出的是指定类型的数组。下面是两个方法的申明及说明,摘自Java8的API文档。toArray()方法的分析Object[]toArray()Returnsanarraycontainingalloftheelementsinthislistinpropersequence(fromfirsttolastelem

    2022年5月14日
    45
  • 基于Krack的网络攻击「建议收藏」

    基于Krack的网络攻击「建议收藏」更新软件包apt-getupdate安装相应的环境apt-getinstalllibnl-3-devlibnl-genl-3-devpkg-configlibssl-devnet-toolsgitsysfsutilspython-scapypython-pycryptodome下载Krack运行脚本gitclonehttps://github.com/…

    2022年6月10日
    36
  • Kettle实战视频教程

    Kettle实战视频教程呕心沥血制作的kettle视频教程,免费提供给大家,只要学不死,就往死里学,加油吧少年学完本课程,您将掌握:掌握kettle的基础知识,进阶知识和实际工作中的各种情况适合人群:1、熟悉数据库,想学习ETL的同学,想快速提升竞争力的ETL工程师2、运维相关工作人员课程目标:能够掌握实际工作中遇到的迁移和业务各种实际工作内容课程简介:1、本教程不是单纯的各种控件进行逐个讲解2、所有知识点均全部为项目实战的介绍和总结3、单表和全表所有的同步4、本视频由浅入深,再由深入浅,循序渐进逐步

    2022年5月23日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号