配置深度学习主机与环境(TensorFlow+1080Ti) | 第三章 CUDA与CUDNN安装

01 概念介绍

CUDA(Compute Unified Device Architecture 统一计算设备架构)

CUDA(Compute Unified Device Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务。 使用CUDA的好处就是透明。根据摩尔定律GPU的晶体管数量不断增多,硬件结构必然是不断的在发展变化,没有必要每次都为不同的硬件结构重新编码,而CUDA就是提供了一种可扩展的编程模型,使得已经写好的CUDA代码可以在任意数量核心的GPU上运行。 CUDA最主要的包含两个方面:一个是ISA指令集架构;第二硬件计算引擎;实际上是硬件和指令集。 也就是说我们可以把CUDA看做是与X86或者cell类似的架构,但是是基于是GPU,而不是传统的CPU。

cuDNN(NVIDIA CUDA® Deep Neural Network library)

The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep Learning SDK(https://developer.nvidia.com/deep-learning-software). Deep learning researchers and framework developers worldwide rely on cuDNN for high-performance GPU acceleration. It allows them to focus on training neural networks and developing software applications rather than spending time on low-level GPU performance tuning. cuDNN accelerates widely used deep learning frameworks, including Caffe(http://caffe.berkeleyvision.org/), Caffe2(https://caffe2.ai/), TensorFlow(https://www.tensorflow.org/), Theano(http://deeplearning.net/software/theano/), Torch(http://torch.ch/), and Microsoft Cognitive Toolkit(https://www.microsoft.com/en-us/cognitive-toolkit/).

cuDNN Accelerated Frameworks

02

安装显卡驱动

在安装CUDA和cuDNN之前,需要确保显卡驱动已经安装好,其安装情况可以在 设置-软件更新-附加驱动 中查看:

设置-软件更新-附加驱动

更多关于显卡(文中使用1080Ti)安装的步骤,可以参考系列文章的第二篇:

配置深度学习主机与环境(TensorFlow+1080Ti):(二)Win10&Ubuntu双系统与显卡驱动安装

03

安装CUDA

1、查阅 NVIDIA CUDA Installation Guide for Linux

英伟达CUDA安装指南(Linux)(http://10.254.1.82/cache/13/03/nvidia.com/ecc6662f545298ca0c880c74dad092df/CUDA_Installation_Guide_Linux.pdf?autho=1488263945_400e879a62681edc11f46d33e8611979&file=CUDA_Installation_Guide_Linux.pdf)

对于后续的学习与工作大有裨益,包含了CUDA的详尽安装说明。当然如果你不想阅读英文,只想尽快安装CUDA,可以参照后续步骤。

2、下载 CUDA Toolkit (https://developer.nvidia.com/cuda-downloads)安装包:

安装包下载选项

推荐使用第一个runfile (local) 安装选项;

网上不少教程中写有需要降低gcc版本,实测,无需降级,因此可以忽略;

下载第一个 Base Installer 即可。

3、安装CUDA 8.0

安装指南

打开终端,输入:sudo sh cuda_8.0.61_375.26_linux.run,在下载选项中,也有说明如何安装;

sudo sh cuda_8.0.61_375.26_linux.run

如果出现大段废话,可以使用 Ctrl+C 跳过;

进入具体的安装选项:

安装选项

注意第二个选项 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 须选择否,因为在之前已经安装好了显卡驱动,无需重新安装。

Do you accept the previously read EULA? accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? (y)es/(n)o/(q)uit: n Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y Enter CUDA Samples Location [ default is /home/dexter ]:

添加环境变量:

在终端中输入nvidia-smi,可以查询显卡状态。

查询显卡状态

在打开的文件中写入:

export PATH="$PATH:/usr/local/cuda-8.0/bin" export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"

保存并关闭文件, 在终端中输入:

source ~/.bashrc

使环境更改生效。

4、在终端中输入nvidia-smi,可以查询显卡状态。

查询显卡状态

5、CUDA Samples 测试

运行 CUDA Samples 检测 CUDA 是否顺利安装:

打开终端,切换到位置:~/ NVIDIA_CUDA-8.0_Samples

输入:make

CUDA Samples 测试

编译时间较长。若没有报错,则将新编译为二进制文件,默认存放在 ~/NVIDIA_CUDA-7.5_Samples/bin 中。

打开终端,切换到位置:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release

终端输入:./deviceQuery,如果显示类似下图,则说明CUDA安装且配置成功!

CUDA安装且配置成功!

04

安装cuDNN

1、下载cuDNN,下载之前需要注册Nvidia开发者帐号,按要求注册即可。

2、莫名其妙在我的笔记本上无法登录...在主机的Ubuntu中可以顺利登录...此条纯属吐槽,封IP真是够了...

IP blocked

3、登录后显示有多个版本可供选择,建议使用 cuDNN v5.1 for CUDA 8.0,因为作者最开始尝鲜选择 cuDNN v6.0 for CUDA 8.0 最后安装失败,应该是支持还不到位。然后又删掉cuDNN,再重新安装(中间删掉重新安装cuDNN已经安装好的Anaconda不影响,但是最好重新安装TensorFlow)。

具体报错为:

ImportError: libcudnn.so.5: cannot open shared object file: No such file or director

Error

在安装cuDNN中,可以看到安装文件的版本为libcudnn.so.6,所以很明显是v6版本不支持导致的错误(参见本文最后一张图,是安装cuDNN v6时的截图,其中包含libcudnn.so.6文件)。

stcokoverflow 中也出现了相关问题: ImportError: libcudnn when running a TensorFlow program(https://stackoverflow.com/questions/41991101/importerror-libcudnn-when-running-a-tensorflow-program)

ImportError: libcudnn when running a TensorFlow program

选择 cuDNN v5.1 for CUDA 8.0 中的 cuDNN v5.1 Library for Linux 下载:

cuDNN v5.1 Library for Linux

在包含安装文件的文件夹,右键,打开终端,输入如下命令行:

tar xvzf cudnn-8.0-linux-x64-v5.1.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64 sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

相当于解压缩+复制粘贴,手动复制粘贴也是没问题的。到此cuDNN安装完毕。

cuDNN安装完毕(v6仅作示范,后面删除换为了v5)

05

参考资料

1、知乎:Ubuntu 16.04.2 + GTX1080 + Python3 TensorFlow 配置(https://zhuanlan.zhihu.com/p/25429108)

2、Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程(http://blog.csdn.net/masa_fish/article/details/51882183)

3、超详细配置Caffe(gpu版本+ubuntu16.04)考虑各种问题(http://blog.csdn.net/a_z666666/article/details/72853346)

4、我爱自然语言处理:深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow(http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%BB%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE-ubuntu16-04-geforce-gtx1080-tensorflow)

5、Ubuntu 16.04安装配置TensorFlow GPU版本(http://www.linuxidc.com/Linux/2016-11/137561.htm)

6、ubuntu16.04下安装TensorFlow(GPU加速)(http://blog.csdn.net/bbzz2/article/details/54141215)

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

DNS Tunneling及相关实现

*本文原创作者:novsec,本文属FreeBuf原创奖励计划,未经许可禁止转载 ? DNS Tunneling,是隐蔽信道的一种,通过将其他协议封装在DNS协...

3286
来自专栏数据和云

循序渐进:Oracle 11.2 RAC集群进程的初始化与启动过程

张大朋(Lunar)Oracle 资深技术专家 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职...

3638
来自专栏Tencentcloud

Docker,请做好自己的清理工作

最近,我们开始对一些应用程序进行docker化,不得不说,我简直爱上了Docker!这是一个非常棒的工程,在AWS EC2的软件运用的基础上,它让我们的生活变得...

6677
来自专栏AI2ML人工智能to机器学习

强化学习体验之小游戏 FlappyBird

在安装完TensorFlow之后(详见” Install TensorFlow in Ubuntu 16.04.1 LTS “), 就可以测试各种深度学习的算法...

541
来自专栏云审计

使用云审计实时监控腾讯云账户

用户开通了云审计服务以后,用户便可以清晰的知道自己的云账户中的资源被哪个账号在什么时候从哪个IP发起过什么操作。

23413
来自专栏嵌入式程序猿

MQX中断系统深度解析(完)

MQX中断系统深度解析(完) MQX ISR 例程分析 以飞思卡尔KSDK最新版1.2.0 MQX isr例程为例说明,飞思卡尔从KSDK的1.1.0版本起...

2966
来自专栏老安的博客

vmware api开发之html5的虚拟机console

1394
来自专栏嵌入式程序猿

带你走进飞思卡尔 Kinetis Flashloader

在嵌入式开发中,经常要用到Flashloader功能,今天我们就来开始以飞思卡尔Kinetis的Flashloader为例来讲讲,大概需要4~5节,内容比较多,...

34413
来自专栏机器学习算法全栈工程师

TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

作者:刘才权 编辑:田 旭 安装平台 1 平台 目前TensorFlow已支持Mac、Ubuntu和Windows三个主流平台(64位平台), ? 2 GPU...

3236
来自专栏FreeBuf

干货 | 如何用Solr搭建大数据查询平台

? 0x00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,...

3257

扫描关注云+社区