不安装cudnn可不可以_关于CUDA和cuDNN的安装

不得不说,安装显卡驱动和CUDA、cuDNN是深度学习工作者的必备技能。

CUDA(Compute Unified Device Architecture),是NVIDIA推出的运算平台。

cuDNN 专门针对Deep Learning框架设计的一套GPU计算加速方案。

虽然安装这不是学习的目的,但却是很多人不得不面对 deep learning 第一课。因为网上框架的不同、版本的不同,所以开发环境会经常换来换去~

就像我今天的经历,因为之前的代码是在TitanX上完成的,当时的环境是ubuntu16.04+Tensorflow 1.4+cuda 8+cudnn 6。今天换了计算机,一来是以为没什么,结果环境不对,程序无法运行。新的服务器上是1080ti,软件环境是Tensorflow 1.6+cuda 9 +cudnn 7,当时装的时候,没怎么考虑版本的问题,所以现在需要修改环境。

因为这个以后也可能常用到,所以记录下来,备查。

基本安装顺序:

0. 安装显卡驱动(这个不需要反复装,只需要第一次安装完成,以后则无需在再动)

卸载和安装 CUDA

安装 cuDNN 库

1. 卸载已安装 CUDA

# 使用apt 卸载已经安装的 CUDA

sudo apt autoremove cuda

# 如果/usr/local/目录下,还有cuda的文件目录,删了吧

cd /usr/local/

rm -rf cuda-8.0/

2. 安装CUAN

2.1 下载

2.2 安装cudn

我选择了cuda_8.0.61_375.26_linux.run。按照官方给的命令进行安装:

# 安装cuda

sudo sh cuda_8.0.61_375.26_linux.run

# 安装提供的补丁

sudo sh cuda_8.0.61.2_linux-run

安装cuda的时候,注意安装过程中给你提供的选项,第一次输入accept的,接受说明条款。然后选择是是否安装显卡驱动,一般选No,因为最好还是自己去找对应的驱动安装才比较靠谱。而且,如果像我这样换环境,自然也不需要去装驱动了。其他的默认yes就行。

2. 3设置环境变量

打开~/.bashrc文件,将下面内容添加到文件的最后:

export CUDA_HOME=/usr/local/cuda

export LD_LIBRARY_PATH=${CUDA_HOME}/lib64

export PATH=${CUDA_HOME}bin:${PATH}

运行:

source ~/.bashrc

打开/etc/profile文件,将下面内容添加到文件的最后:

export PATH=“/usr/local/cuda/bin:$PATH”

然后,运行:

source /etc/profile

2.4 测试是否安装成功

cd /usr/local/cuda/samples/1_Utilities/deviceQuery

make

sudo ./deviceQuery

3. 安装卸载 cuDNN

cuDNN 实际是一个库,并不存在安装过程。

下载对应的对应的版本的压缩包(需要注册登陆),下载对应版本的压缩包,解压,将对应的头文件和动态链接库文件放到对应的位置,然后配置环境变量。

解压

移动文件

# 保险起见,删除原来存在的cudnn文件

sudo rm -rf /usr/local/cuda/include/cudnn.h

sudo rm -rf /usr/local/cuda/lib64/libcudnn*

# 拷贝文件到固定位置

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

sudo cp lib64/lib* /usr/local/cuda/lib64/

一些相关的修改

cd /usr/local/cuda/lib64/

#删除原有文件

sudo rm -rf libcudnn.so libcudnn.so.6

# 修改权限

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

# ldconfig通常在系统启动时运行,安装了一个新的动态链接库时,就需要手工运行这个命令

sudo ldconfig

后记

完成上面的步骤,就成功安装了环境。

在terminal上运行tensorflow 的 Demo实验,是没有问题的。

有一个小意外,我在ubuntu上用的是pycharm编辑器,在pycharm直接运行是报错的:

ImportError: libcublas.so.6.0: cannot open shared object file: No such file or directory.

没找文件?可是我的文件,明明就在那里啊!

最后检索知道,要给pycharm单独配置环境变量。

LD_LIBRARY_PATH=/usr/local/cuda/lib64

以上。

(有些截图是写博客需要,在windows上完成的,实验过程是在ubuntu 16.04下。欢迎交流。)

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

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

相关文章

常用自定义注解

导航一、方法计时器二、valid 参数校验的通用返回三、接口访问频次拦截(幂等)一、方法计时器 注解类:MethodTimer Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface MethodTimer { }处理器(需…

python 系统架构_Python之优化系统架构的方案

方案3: 改变系统架构在开始多进程之前,先简单说明一下python GIL, 之前自己对他也有些误解。因为python GIL的机制存在,同时运行的线程只有一个,但这个线程在不同时刻可以运行在不同的核上,这个调度是由操作系统完成的…

JVM垃圾收集器——G1

导航引言一、G1 介绍1.1 适用场景1.2 设计初衷1.3 关注焦点1.4 工作模式1.5 堆的逻辑结构1.6 主要收集目标1.7 停顿预测模型1.8 拷贝和压缩1.9 与 CMS 和 Parallel 收集器的比较1.10 固定停顿目标二、堆的逻辑分区2.1 region2.2 CSet2.3 RSet2.4 Card Table三、G1 的工作原理3.…

的mvc_简述PHP网站开发的MVC模式

为了提高开发时候的代码重用和开发速度,php使用了mvc的模式,主要是对代码的功能进行了分类,M:model主要是对数据库进行操作,v:view主要是前端html文件操作,c:controller主要是编写基…

CAP 原则与 BASE 理论

导航引言一、CAP 原则1.1 Consistency 一致性1.2 Available 可用性1.3 Partition tolerance 分区容错性1.4 CAP 的矛盾1.5 CAP 的组合场景二、BASE 理论2.1 基本可用2.2 软状态2.3 最终一致性2.3.1 因果一致性2.3.2 读自身所写2.3.3 会话一致性2.3.4 单调读一致性2.3.5 单调写一…

java 教室借用管理系统_[内附完整源码和文档] 基于JAVA语言的学生选课信息管理系统...

摘 要本系统运用Java面向对象的方法设计而成。近年来,学生选课系统越来越在高校学生群体中得到普及,其所承担的功能也变得越来越丰富,所起到的作用也变得越来越重要,在被学校学生重视的同时,也意味着它的功能要更加完善…

jMeter 模拟 web 高并发请求

导航一、jmeter 简介与下载二、接口压测设置三、实战演示一、jmeter 简介与下载 Apache JMeter是Apache组织开发的基于Java的压力测试工具。 最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter 可以用于对服务器、网络或对象模拟巨大的负载&#xff0c…

实施文档_建设工程监理全套资料范本,Word文档附百份案例表格,超实用

建设工程监理全套资料范本,Word文档附百份案例表格,超实用在日常工作中,监理人员不仅需要经常跑腿儿检查,同时还需要提交许许多多的资料存档,甚至可能需要熬夜码字。今天整理的监理资料范本,既能让监理人员…

微服务架构 —— 服务雪崩与容错方案

导航一、什么是服务雪崩二、雪崩效应的三个核心原因三、容错四、业界常见容错思路五、常见容错组件一、什么是服务雪崩 服务雪崩 指的是微服务架构中,微服务各节点之间由于网络通信异常或微服务自身故障等问题,导致请求堆积、任务堆积,消耗和…

手游方舟怎么输入代码_明日方舟再次登顶失败,为了不发十连奖励,鹰角实力控分?...

在明日方舟新版本活动“孤岛风云”正式上线后,关于干员的强度和游戏剧情的讨论也在最近多了起来。尤其是在一周年卫星干员山落地,并且人气干员塞雷娅背后的故事揭晓之后,明日方舟的热度也在玩家圈子中迅速的攀升,成为近期话题量十…

ios 图片逆时针旋转_iphone-IOS 竖直拍照被旋转,image-orientation 让图片自动旋转

本文目录结构IOS 垂直拍照的时候会遇到,PC 端读取的时候,逆时针旋转了 90 度的问题;安卓、PS 处理的,相册选择截图等不会出现这个问题;场景说明:这个图片在浏览器里,如果您单独打开的时候&#…

Spring Cloud Alibaba —— Sentinel 入门

导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示一、什么是Sentinel Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点,从流量控制、熔断降级、系统负载保…

websocket 获取连接id_websocket建立连接时能传递参数吗

展开全部您可以这样!在js传参的时候参数就和其他地址一样传就行 比如var wsUrl ws://localhost:8080/ScadaWebSocket/ScadaSocket/我的参数webSocketnew WebSocket(wsUrl);后台的类上面的注解这样写ServerEndpoint(value "/ScadaSocket/{param}")注意上面的花3231…

Spring Cloud Alibaba —— Sentinel 详细使用

导航引言一、Sentinel的两个基本概念二、流控规则2.1 基本选项2.2 高级选项三、熔断(降级)规则四、热点规则五、授权规则(了解)六、系统规则(了解)七、自定义异常返回八、SentinelResource九、Sentinel 规则持久化(待补…

扫地机器人单扫和双扫_小米扫拖机器人体验:再见了,拖把君

小米在2016年首次推出了扫地机器人,凭借产品力和性价比,可以说为中国家庭的智能清洁概念普及,立下一功。不过,近两年因为一直没有推出扫拖一体产品,急得民间高手都开始自己动手给米家扫地机改造拖地功能了,…

Spring Cloud —— Gateway 服务网关

导航一、什么是服务网关二、业界常见网关组件三、Spring Cloud Gateway四、Gateway 快速入门4.1 创建 gateway 服务4.2 添加 gateway 依赖和 nacos 依赖4.3 配置路由信息4.4 测试路由转发五、Gateway 执行流程六、Gateway 断言6.1 内置路由断言工厂6.2 自定义路由断言工厂七、G…

图形显卡_选核芯显卡还是独立显卡?这才是决定笔记本电脑性能的关键

买笔记本电脑的时候,选核芯显卡还是独立显卡是很多朋友纠结的问题。核芯显卡是建立在和处理器同一内核芯片上的图形处理单元,而独立显卡拥有单独的图形核心和独立的显存。那么具体哪个更好呢?这里就来介绍一下。两者各自的特点核芯显卡和传统…

Spring Cloud —— 链路追踪技术

导航一、什么是链路追踪二、Spring Cloud Sleuth2.1 相关概念三、Sleuth 入门案例四、Zipkin 的集成4.1 Zipkin 介绍4.2 Zipkin 服务端安装4.3 Zipkin 客户端安装五、Zipkin 数据持久化5.1 MySQL 数据持久化5.2 Elasticsearch 数据持久化一、什么是链路追踪 在大型系统的微服务…

使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...

Vim是号称“编辑器之神”的文本编辑软件,自从接触Vim以来,基本上都是用Vim来修改和编写代码和配置文件的。但是我一直只会用最基本的命令,虽然把HJKL的定位键已操纵地很熟练。但是Vim其他强大的地方却几乎没有触及过。学一样东西,…

bool类型数组转换成一个整数_「PHP」常用的数组键值操作函数,面试重点

数组键值操作函数1、array_values ( array $array ) : array返回数组中所有的值的数组$a[name>jikeshiguangji,age>26];print_r(array_values($a));运行结果:$aarray("name">"jikeshiguangji","age">"26");pri…