当前位置: 首页 > 编程日记 > 正文

Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装

Ubuntu系统---安NVIDIA 驱动后  CUDA+cuDNN 安装

  --------------------------------------------@20190726---------------------------------------------------------------------------------------------

  上接《Ubuntu系统---NVIDIA 驱动安装》。预配置环境:Ubuntu16.04 + GTX2080Ti + CUDA10.0 + yolo v3+Opencv3.4.2

  这一步,紧接着“NVIDIA 驱动已安完”后的“CUDA安装”。根据Ubuntu16.04 + GTX2080T 在英伟达官网上选择合适的驱动,有很多版本可选这里选择了NVIDIA-Linux-x86_64-410.78.run 。没安装之前踩了很多坑,觉得有点难度,装完之后发现很简单,只是方法没找对。

  首先,在强调一下NVIDIA 驱动安装过程:

第一步:下载NVIDIA-Linux-x86_64-410.78.run第二步,禁用nouveau
安装NVIDIA需要把系统自带的驱动禁用,打开文件:
sudo gedit /etc/modprobe.d/blacklist.conf在文本最后添加以下内容:
blacklist nouveau
option nouveau modeset=0
命令窗口会提示warn,无视之。保存退出,执行以下命令生效:
sudo update-initramfs -u重启电脑后输入:
lsmod | grep nouveau
没有任何输出说明禁用成功。第三步,进入tty。
按住CTRL+ALT+F2 进入命令行界面
Login : 安装ubuntu的用户名
紧接着输入密码sudo service lightdm stop 
sudo init 3cd setup //进入NVIDIA的.run文件目录下

sudo  ./NVIDIA-Linux-x86_64-410.93.runsudo service lightdm start  然后按Ctrl-Alt+F7即可恢复到图形界面。sudo  reboot //按照提示安装完成,简单方法重启就好了     

 

另外,nouveau也可以这样禁用。用vim编辑器打开(vim使用方法自行百度):
sudo vim /etc/modprobe.d/blacklist.conf在该文件后添加以下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
并执行: sudo update
-initramfs -u重启后执行: lsmod | grep nouveauUbuntu系统登录界面变大,并且循环输入正确密码无法进入桌面的解决方案@https://blog.csdn.net/qq_36427732/article/details/80914653

 

  第二步,CUDA安装

  首先也是去官网上 下载和驱动对应的cuda文件https://developer.nvidia.com/cuda-toolkit-archive,需要注册一个账号。

一定要选择runfile.下载完成之后进入放runfile的文件夹,执行:sudo sh cuda_10.0.1.130_410.48_linux.run

然后,疯狂按空格/Enter键, 直到 100%。如果不按,它会一直保持0%。

第一次,傻傻不知道,就在那里等,然后重装两遍,试了其他方法无效,意外狂按就出来了。

还以为是GCC内核的问题,查的版本和说明文档不一致,掉坑里好久。目前先跳过了这一步,后续真用起来才知道与这一步有没有关系。

 

 

  上步骤完成后,进行环境配置:

环境变量的配置:
sudo gedit ~/.bashrc
末尾添加: export PATH
=/usr/local/cuda-10.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
重启计算机
测试CUDA安装结果: nvcc
--version
cd NVIDIA_CUDA
-10.0_Samples make cd /NVIDIA_CUDA-10.0_Samples/bin/x84_64/linux/release 执行./deviceQuery #如果显示的是一些关于GPU的信息,则说明安装成功了。

  

  第三步,cuDNN安装

   同样,也还是去官网上下载CUDA10.0对应的cuDNN版本,下载地址:https://developer.nvidia.com/rdp/cudnn-download。

网上的教程,五花八门,这里选其中一个尝试,好用。

@https://blog.csdn.net/qq_39418067/article/details/87978848  下载1个文件 

cuDNN Libary for Linux

@https://blog.csdn.net/qq_33427431/article/details/89235639  下载4个文件

cuDNN Library for Linux(Power)
cuDNN Runtime Library for Ubuntu16.04 (Deb)
cuDNN Developer Library for Ubuntu16.04 (Deb)
cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb)

@https://blog.csdn.net/wangzi11111111/article/details/90447326 下载2个文件

cuDNN Runtime Library for Ubuntu16.04 (Deb)、

cuDNN Developer Library for Ubuntu16.04 (Deb)

  本文参照@https://blog.csdn.net/qq_36362060/article/details/80739573

  下载完成之后解压到/home目录下,文件夹重命名为cudnn7,然后执行下面的命令进行安装:

#set_cuDnn.sh

#
!/bin/bashecho "remove libcudnn* file of /usr/local/cuda/lib64" sudo rm -rf /usr/local/cuda/lib64/libcudnn.s* #删除旧版本cudnnecho "copy cudnn.h to usr/local/cuda/include" #sudo cp /home/user_name/cudnn6/include/cudnn.h /usr/local/cuda/include #复制cudnn.h文件到/usr/local/cuda/include目录下,这里的user_name改为自己的用户名 sudo cp /home/u/cuda10.0/cuDNN/include/cudnn.h /usr/local/cuda/include #复制cudnn.h文件到/usr sudo chmod 777 -R /usr/local/cuda/include #对复制后的文件解除权限echo "copy lib* to usr/local/cuda/lib64" sudo cp /home/u/cuda10.0/cuDNN/lib64/lib* /usr/local/cuda/lib64 #同上 sudo chmod 777 -R /usr/local/cuda/lib64 #同上sudo ldconfig #对所有的复制和解除权限操作执行生效

# vim setupcudnn.sh #新建一个shell脚本文件,文件里面复制下面的内容进去 # 然后保存setupcudnn.sh文件的内容,并执行下面的命令进行安装: # sudo bash set_cuDnn.sh #执行setupcudnn.sh脚本中的命令,安装cudnn #
**注意:**这里将安装命令写成脚本文件的好处是,后面如果要进行其他cudnn版本的安装,只要稍加修改这个脚本,然后运行就可以迅速完成安装。例如要安装cudnn7版本,下载cudnn7,解压文件重命名为cudnn7,把脚本文件里的cudnn6修改为cudnn7,然后执行sudo bash setupcudnn.sh 就完成了安装。

 

如何查看CUDA版本和CUDNN版本cuda一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息:
cat /usr/local/cuda/version.txt 即可查询cudnn的信息在其头文件里:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  即可查询

   综上,基本环境算是完事儿了。接下来配置OpenCV3.4.2。

  记一下,每重装一次Ubuntu系统,等待过程大概是45分钟左右。-----> 设置网络------->装驱动------>别的

 

--------------------------------------------@20190802更新---------------------------------------------------------------------------------------------

---------------------------------------------解决“Ubuntu 系统循环登陆”问题--------------------------------------------------------------------

   刚开始装好ubuntu系统后,装完驱动重启进入系统,有出现过“进入Ubuntu 系统  停留在循环登陆界面”。因为刚装好系统,又是刚装完英伟达驱动重启出现的问题,所以毋庸置疑是安装英伟达驱动出现了问题。当时的解决方式是:重装系统+重装英伟达驱动。虽然解决了当时的问题,用了不几天,刚把其他环境搭好。昨天用系统,一切安好,下班正常关机了,一早开机又出现了“进入Ubuntu 系统  停留在循环登陆界面”。我合计昨日是正常工作,并没安装什么东西,这几天开关机也正常,首先排除应该不是驱动的问题。

  这次,先是网上搜罗了一圈解决方法,尝试了几个没解决问题,本能的反应是再重装系统,但是已经装好了好多环境,不愿意重装啊。借来了U盘,想把重要文件拷贝出来(PS时刻备份很重要)。还好,这时候我吱声了一句,资深人建议了一点,加上又在网上搜罗,多数都说是驱动问题,合计试试。卸载驱动,在重装驱动试试,万一好使,就不用重装系统了。结果OK OK OK。

     后面做详细的记录,这里略。

转载于:https://www.cnblogs.com/carle-09/p/11252814.html

相关文章:

Maya基础入门学习教程

Maya基础入门学习教程 视频:.MKV, 1280x720, 共57节课 时长 4小时25分钟,3GB 语言:英语中文字幕(根据原英文字幕机译更准确)原英文字幕 指导老师:Shane Whittington Shane Whittington 百度一下 云桥网…

java学习总结:3

逻辑运算 1.’!’(非) 2.与(多个条件一起满足) Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。 ’&&的短路功能,当…

asp.net httpmodule 访问页面控件 备忘

用到的时候发现还得找代码,存一个例子方便自己和他人修改: using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls;…

Ubuntu下Sublime Text 3解决无法输入中文的方法

2019独角兽企业重金招聘Python工程师标准>>> 环境: Ubuntu14.04搜狗输入法 for LinuxSublime text 3提示:编译请在非root下进行 本经验目前在Ubuntu14.04环境下,已有搜狗输入法 for Linux和Sublime Text 3的情况下安装成功。 保存…

电子书下载:Building Websites with DotNetNuke 5

下载:http://www.ctdisk.com/file/9941471 转载于:https://www.cnblogs.com/MaxWoods/archive/2012/10/10/2719167.html

Java学习总结:4

面向对象 面向对象的程序设计具有封装性、继承性、多态性。 类的定义语法如下: class 类名称{数据类型 属性(变量);...public 返回值的数据类型 方法名称(参数1,参数2...){程序语句;[return 表达式;] } }定义类 class Book {String title;double pric…

在3ds Max中使用V-Ray 5渲染引擎视频教程

在3ds Max中使用V-Ray 5渲染引擎视频教程 MP4 | 视频:h264, 1280x720 | 音频:AAC, 44.1 KHz, 2通道。AAC, 44.1 KHz, 2 Ch. 技能水平。初学者|类型:电子学习|语言:英语中文字幕(根据原英文字幕…

OC实用转换model的工具

OC实用转换model的工具 说明 这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点如下: 1. 用组合设计模式处理树形数据结构(非线性数据结构) 2. 在调试台中处理生成Model…

后端怎么防止重复提交?(常用的做法)

后端怎么防止重复提交?(常用的做法) 客户端的抖动,快速操作,网络通信或者服务器响应慢,造成服务器重复处理。防止重复提交,除了从前端控制,后台也需要控制。因为前端的限制不能解决…

利用MAC OS X 自带的磁盘工具提取光盘镜像ISO文件

虽说渐渐地Mac笔记本基本告别内置光驱时代了,随着网络的普及,使用到光驱的机会也渐少,但有时又难免需要光驱,比如二货出版社的随书光盘等…我们可以通过USB外置光驱将光盘内容提取为ISO文件保存到电脑里,方便以后可以随…

Java学习总结:5

面向对象 对象数组 引用数据类型也可以定义数组 格式: 1.对象数组的动态初始化 类名称 对象数组名称 new 类名称 [长度];动态初始化默认情况下,数组的每一个元素都是其对应的默认值null。 class Book5{private String title;private double price;…

Maya初学者完整的3D动画大师班视频教程

Maya初学者完整的3D动画大师班视频教程 时间13小时30分 包括课程项目文件 1280X720 MP4 语言:英语中文字幕(根据原英文字幕机译更准确)原英文字幕 教程大小解压后:8.38G Maya初学者。完整的3D动画大师班 百度一下 云桥网络 平台…

jQuery-1.9.1源码分析系列(四) 缓存系统

先前在分析Sizzle的时候分析到Sizzle有自己的缓存机制,点击这里查看。不过Sizzle的缓存只是对内使用的(内部自己存,自己取)。接下来分析jQuery可以对外使用的缓存(可存可取)。 首先需要明白jQuery缓存需要解…

CBA 赛程的笔记 - 北京首钢

2014-11-01 19:35北京首钢103:89广东宏远结束技术统计 发挥不错,打的比较好!2014-11-05 19:35八一双鹿89:100北京首钢结束技术统计 第一节国内球员打的太屎,最后一节国内球员发挥不错!2014-11-07 19:35浙江稠州107:116北京首钢结束…

个人技术生涯的感悟(2)

很多时候,一门门槛很低的编程语言对于初学者的帮助是非常大的,从而决定这个人的技术路线的选择。 在经历过大一下学期对C,和C的迷茫之后,在大二上学期,学校在搞一个网页设计比赛,正好和两个朋友一起参赛。开…

HtmlAgilityPack 处理通配的contains

//选择不包含class属性的节点 var result node.SelectNodes(".//span[not(class)]"); //选择不包含class和id属性的节点 var result node.SelectNodes(".//span[not(class) and not(id)]"); //选择不包含class"expire"的span var result node…

游戏风格化角色创建入门指南视频教程

游戏风格化角色创建入门指南视频教程 时间 33小时 包括项目文件 1920X1080 MP4 语言:英语中文字幕(根据原英文字幕机译更准确)原英文字幕 游戏中的风格化角色创建入门指南 百度一下 云桥网络 平台huo取 教程! 信息。 教程33小…

Java学习总结:6

String类(接上篇) 字符串的拆分 public class Test1_1_2_1 {public static void main(String args[]){String str "hello world";String result[] str.split(" "); //以空格作为间隔for(int x0;x<result.length;x){System.out.print(result[x]"…

java面试常见问题之Hibernate总结

1 Hibernate的检索方式 导航对象图检索&#xff08;根据已经加载的对象&#xff0c;导航到其他对象。&#xff09; OID检索&#xff08;按照对象的OID来检索对象。&#xff09; HQL检索&#xff08;使用面向对象的HQL查询语言。&#xff09; QBC检索&#xff08;使…

HDU 4267 线段树 离散点区间更新, 自叶子节点至根单点查询

题意&#xff1a; n个数字 下面n个数字表示数列 2个操作 1 [u, v] k add [u,v ]区间 &#xff08;u点要计算&#xff09;每隔k个位置&#xff0c;该数字add 2 pos 询问 pos下标的值&#xff08;下标从1开始&#xff09; 思路&#xff1a; 因为k很小&#xff0c; 可以直接存 k…

Java学习总结:7

static关键字 一个类的主要组成就是属性和方法(分为构造方法和普通方法两种)&#xff0c;而每一个对象都分别拥有各自的属性内容(不同对象的属性保存在不同的堆内存中)&#xff0c;如果类中的某个属性希望定义为公共属性(即所有对象都可以使用的属性)&#xff0c;则可以在声明…

mybatis 使用resultMap实现数据库的操作

resultType:直接表示返回类型 resultMap&#xff1a;对外部resultMap的引用 二者不能同时使用 创建一个实体类Role和User public class Role {private Integer id;private String roleCode;private String roleName;//省略set、get方法 创建User类&#xff08;在User中有roleId…

【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course

【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course 三维产品可视化课程 教程大小&#xff1a;5.38G 1280X720 含课程素材文件 你会学到什么 项目简介及其必须包含的内容 蓝图以及如何获得和使用 逐步建模流程 如何制作UV和纹理 用UV投射材料 生成…

Spring MVC 和WebFlux 区别

本节主要对比了WebMvc 和 WebFlux两个Web框架,Spring已经为我们开发做了很大努力了,所以在合适的场景下这种异步框架还是非常可行的。但是还要考虑后期其它异步框架是否能够完善,全链路异步才能发挥异步最大的优势。

Cygwin鸡毛蒜皮

2019独角兽企业重金招聘Python工程师标准>>> Windows命令乱码: cygwin控制台mintty的编码缺省是UTF-8, 右键调整mintty选项[text] 改编码为GBK UNIX路径和Windows路径互转: 使用cygpath工具. 如: #cd cygpath C:\\Windows 安装包管理器apt-cyg: 安装: # svn --fo…

Using unique option prefix myisam-recover instead of myisam-recover-option

[转载]关于mysql error.log报"Using unique option prefix myisam-recover instead of myisam-recover-options ..."转载&#xff1a;http://blog.csdn.net/cloud_xy/article/details/21756601启动时日志中有这个警告的&#xff1a;[Warning] Using unique option pr…

Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020

Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:aac&#xff0c;48000 Hz 语言:英语 中文字幕&#xff08;机译&#xff09;原英文字幕 |大小:33.0 GB | 145节课程| (36h 18m) 你会学到什么 云…

Java学习总结:8

链表 class Node2{ //定义一个节点private String data;private Node2 next; //要保存的下一个节点public Node2(String data){ //每一个Node2对象都必须保存相应的数据this.datadata;}public void setNext(Node2 next){this.nextnext;}public Node2 getNext(){return this.…

(原创)c#学习笔记10--定义类成员03--接口的实现01--显示实现接口成员

10.3 接口的实现 在继续前&#xff0c;先讨论一下如何定义和实现接口。第9章介绍了接口定义的方式与类相似&#xff0c;使用的代码如下&#xff1a; interface IMyInterface {// Interface members. } 接口成员的定义与类成员的定义相似&#xff0c;但有几个重要的区别&#…

JVM架构解析

本文阐述了JVM的构成和组件&#xff0c;配图清晰易懂&#xff0c;是学习Java开发者的入门必读文章。 每个Java开发人员都知道字节码经由JRE&#xff08;Java运行时环境&#xff09;执行。但他们或许不知道JRE其实是由Java虚拟机&#xff08;JVM&#xff09;实现&#xff0c;JV…