Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)

目录

1.cuda的安装

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

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

     1.3  终极杀手锏

2.cudnn的安装


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

查看流程如下:

  1. 打开控制面板
  2. 硬件和声音
    在这里插入图片描述
  3. NVDIA控制面板
    在这里插入图片描述
  4. 帮助 -> 系统信息
    在这里插入图片描述
  5. 查看支持的CUDA版本号
    在这里插入图片描述

总结:
上述栗子,支持的CUDA版本号为10.1.152。

1.cuda的安装

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

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

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

(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键显示隐藏文件。

 
  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64

  2. export PATH=$PATH:/usr/local/cuda-9.0/bin

  3. export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

终端运行:source ~/.bashrc

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

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

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

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

 

     1.3  终极杀手锏

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

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

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

就本人的亲身经验,这个表里面最有用的信息就是系统内核的版本 绝大部分人安装不上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文件夹,在当前目录打开终端,执行如下命令:

 
  1. sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

  2.  
  3. sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

  4.  
  5. sudo chmod a+r /usr/local/cuda/include/cudnn.h

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

(3)查看cudnn版本

在终端输入

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

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

更多资讯或疑问内容请关注 微信公众号 “让梦飞起来” 或添加小编微信, 后台回复 “Python” ,领取更多资料哦

           ​                     ​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python做ui自动化_python+selenium做ui自动化测试用法必会

一、前言大家都知道,基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于 Python 的 SeleniumSelenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用…

c# 操作IIS应用程序池

直接代码: 代码 usingSystem.DirectoryServices; //添加引用 System.DirectoryServicestry{ DirectoryEntry appPool newDirectoryEntry("IIS://localhost/W3SVC/AppPools"); DirectoryEntry findPool appPool.Children.Find("DefaultAppPool&…

Android获取手机和系统版本等信息的代码

2019独角兽企业重金招聘Python工程师标准>>> String phoneInfo "Product: " android.os.Build.PRODUCT; phoneInfo ", CPU_ABI: " android.os.Build.CPU_ABI; phoneInfo ", TAGS: " android.os.Build.TAGS; phoneInfo &…

用hyperledger cello H3C分支创建单机模式区块链系统

本文介绍用hyperledger cello的0.9.0-h3c分支创建一套区块链系统的完整流程,希望对读者有所帮助。 环境准备工作:需要准备一台装有ubuntu 16.04的主机,内存需要大一些,建议8G以上。安装docker-ce和docker-compose。 接下来&…

Visual Studio 2010快捷键大全

为什么80%的码农都做不了架构师?>>> 【窗口快捷键】 CtrlW,W: 浏览器窗口 CtrlW,S: 解决方案管理器 CtrlW,C: 类视图 CtrlW,E: 错误列表 CtrlW,O: 输出视图 trlW,P: 属性窗口 CtrlW,T: 任务列表 CtrlW,X: 工具箱 CtrlW,B: 书签窗口 CtrlW,U: 文档大纲 C…

c# 查询本机日志

代码 StringBuilder sb newStringBuilder();EventLog mylog newEventLog();mylog.Log "Application"; //System[系统日志] | Application[应用日志] | Security[安全日志]EventLogEntryCollection myCollection mylog.Entries;for(inti 0; i <myCollection.Count…

Python安装FrankMocap实现3D人体姿态估计

FrankMocap 是港中文联合 Facebook AI 研究院提出的3D 人体姿态和形状估计算法。 不仅仅是估计人体的运动姿态&#xff0c;甚至连身体的形状&#xff0c;手部的动作都可以一起计算出来。 算法很强大&#xff0c;能够从单目视频同时估计出 3D 人体和手部运动&#xff0c;在一块 …

Windows任务管理 连接用户登录信息 通用类[C#版]

通用类名[ComputerLoginUserInfo.cs] 代码如下&#xff1a; 代码 usingSystem;//---引用usingSystem.Runtime.InteropServices;usingSystem.Text;///<summary>///Windows 任务管理器登录用户信息///author:Stone_W///date:2011.1.14///</summary>publicclassComput…

Hanoi(汉诺)塔问题

问题描述&#xff1a; Hanoi(汉诺)塔问题。古代有一个梵塔&#xff0c;塔内有3个座A,B,C&#xff0c;开始时A座有n个盘子&#xff0c;盘子大小不等&#xff0c;大的在下&#xff0c;小的在上。有一个老和尚想把这n个盘子&#xff0c;从A座移动到C座&#xff0c;但是每次只允许移…

实现Windows直接远程访问Ubuntu桌面和解决VNC连接Ubuntu桌面灰色的问题解决

Accept clipboard from viewersSend clipboard to viewersSend primary selection to viewers 本文主要是讲解如果理由VNC实现Windows远程访问Ubuntu 16.04(因为本文已经有点年头了&#xff0c;之前以16.04版本为例讲解&#xff0c;最新版18.04笔主也测试过是没有问题的)&#…

python自己做个定时器_python 创建一个自己的类计时器

前言&#xff1a;学习了python的类之后收获颇多&#xff0c;于是想利用类创建一个简单的计时器第一代版本首先要明确自己的timer想要实现的功能…先列一些简单的吧比如&#xff1a;开始计时的功能&#xff0c;停止计时的功能&#xff0c;有一些简单的提示语…还有一个问题&…

HttpWebRequest模拟POST提交防止中文乱码

测试通过&#xff0c;请求的为自己写的一般处理程序&#xff0c;代码如下&#xff1a; 代码 Encoding myEncoding Encoding.GetEncoding("gb2312");stringparam HttpUtility.UrlEncode("aa", myEncoding) ""HttpUtility.UrlEncode("值A&quo…

手把手带你玩转Tensorflow 物体检测 API (1)——运行实例

本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型&#xff08;1&#xff09;——环境搭建与测试》的基础上优化并总结&#xff0c;此博客链接&#xff1a;https://blog.csdn.net/dy_guox/article/details/79081499&#xff0c;感谢此博客作者。 0.前言…

html5 java 图片上传_java实现图片上传至服务器并显示,如何做?希望要具体的代码实现...

展开全部有两种方法一是用上传的组建jspSmartUpload的Request&#xff0c;还有一种不用组建&#xff0c;但在e69da5e6ba9062616964757a686964616f31333238653233form表单中不能加入ENCTYPE "multipart/form-data "我给你的案例吧建立后台数据库if exists (select * f…

CISCO的GLBP(网关负载均衡协议)

名词定义&#xff1a;活动虚拟网关AVG: 它的优先级最高&#xff0c;应答所有ARP请求&#xff0c;反回哪个MAC地址&#xff0c;取决于采用的负载均衡方式AVG还给GLBP组中的每台路由器分配虚拟MAC地址&#xff0c;最多每个组可以分到4个&#xff0c;组里的每台路由器都被称为活动…

net发布的dll方法和类显示注释信息(字段说明信息)[图解]

自己发布的dll添加的另一个项目中突然没有字段说明信息了&#xff0c;给使用带来了很多的不便&#xff0c;原因是为了跨项目引用&#xff0c;所以导致不显示注释信息的&#xff0c;一下是解决这个问题的方法。 在要发布&#xff08;被引用&#xff09;的项目上右键 > 属性 &…

手把手带你玩转Tensorflow 物体检测 API (2)——数据准备

致谢声明 本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型&#xff08;2&#xff09;——训练并使用自己的模型》的基础上优化并总结&#xff0c;此博客链接&#xff1a;https://blog.csdn.net/dy_guox/article/details/79111949&#xff0c;感谢此博…

手把手带你玩转Tensorflow 物体检测 API (3)——训练模型

致谢声明 本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型&#xff08;2&#xff09;——训练并使用自己的模型》的基础上优化并总结&#xff0c;此博客链接&#xff1a;https://blog.csdn.net/dy_guox/article/details/79111949&#xff0c;感谢此博…

动态类型var和dynamic和传统确定类型区别和效率

伴随着vs2010的出现&#xff0c;c#4.0的诞生&#xff0c;与之而来的动态类型dynamic更是给net程序员们锦上添花&#xff0c;为自己的程序书写上带来了给大的便利。可到底怎么用&#xff0c;好不好用&#xff0c;效率这么样&#xff0c;也许是大家最迫切关注的&#xff0c;msdn虽…

手把手带你玩转Tensorflow 物体检测 API (4)—— 模型验证

致谢声明 本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型&#xff08;2&#xff09;——训练并使用自己的模型》的基础上优化并总结&#xff0c;此博客链接&#xff1a;https://blog.csdn.net/dy_guox/article/details/79111949&#xff0c;感谢此博…