配置深度学习主机与环境(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 条评论
登录 后参与评论

相关文章

来自专栏陈满iOS

CocoaPods与Ruby安装,配置,及使用详细记录(Mac环境)

附:笔者介绍另一种导入第三方库工具Carthage的文章,可以另外点击进入查看http://www.jianshu.com/p/1de99aeedbf6

653
来自专栏目标检测和深度学习

Github 项目推荐 | 兼容 Scikit-Learn 的 PyTorch 神经网络库 —— skorch

1012
来自专栏小狼的世界

Fedora 11 的安装以及 LAMP环境的搭建(一)

最近,重新安装了一次系统,为了以后不再做无谓的重复查询的工作,特将本次安装及配置的过程记录下来,做为自己以后的一个参考,亦可以为想要安装 Fedora 桌面的同...

823
来自专栏MelonTeam专栏

配置tensorflow GPU 版本填坑路

导语 运气好按照教程一把过,运气不好遇到一堆抓狂的问题,记录下踩到的坑 如果是练习教程中的例子tensorflow cpu 版本够用了,要训练的话...

2037
来自专栏nice_每一天

理解 IntelliJ IDEA 的项目配置和Web部署

IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA...

954
来自专栏人工智能LeadAI

在NVIDIA Jetson TX2上安装TensorFlow

刷机的目的是把Ubuntu操作系统和JetPack SDK安装到Jetson TX2上。刷机的操作按照官方教程即可,比较容易。这个过程中有一点需要注意:Jets...

1672
来自专栏生信技能树

用wget下载需要用户名和密码认证的网站或者ftp服务器文件

虽然我以前经常写爬虫,但毕竟是代码活,复用性非常低,每次得耗十几分钟解析网页并且写好代码。而熟悉linux的朋友都应该了解wget这个神器,有了url之后一行命...

4958
来自专栏nice_每一天

理解 IntelliJ IDEA 的项目配置和Web部署

IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA...

1192
来自专栏潇涧技术专栏

Head First Stanford NLP (4)

(深入浅出Stanford NLP 深入篇) 本文介绍与Stanford CoreNLP源码相关的内容。

682
来自专栏以南小隐-数通那些事儿

IOL镜像导入篇《GNS3 2.1.3 环境搭建系列教程四》

1843

扫码关注云+社区