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

GTX 1080Ti

配置深度学习主机与环境(TensorFlow+1080Ti):
(一)硬件选购与主机组装
(二)Win10&Ubuntu双系统与显卡驱动安装
(三)CUDA与CUDNN安装
(四)基于Anaconda的TensorFlow安装


0. 概念介绍

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.
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, Caffe2, TensorFlow, Theano, Torch, and Microsoft Cognitive Toolkit.

cuDNN Accelerated Frameworks

1. 安装显卡驱动

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

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

更多关于显卡(文中使用1080Ti)安装的步骤,可以参考系列文章的第二篇:
配置深度学习主机与环境(TensorFlow+1080Ti):(二)Win10&Ubuntu双系统与显卡驱动安装

2. 安装CUDA

  1. 查阅 NVIDIA CUDA Installation Guide for Linux
    英伟达CUDA安装指南(Linux)
    对于后续的学习与工作大有裨益,包含了CUDA的详尽安装说明。当然如果你不想阅读英文,只想尽快安装CUDA,可以参照后续步骤。
  • 下载 CUDA Toolkit 安装包:
    安装包下载选项
  • 推荐使用第一个runfile (local) 安装选项;
  • 网上不少教程中写有需要降低gcc版本,实测,无需降级,因此可以忽略;
  • 下载第一个 Base Installer 即可。
  • 安装CUDA8.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 ]:
  • 添加环境变量:
    • 在终端中输入:
gedit ~/.bashrc
  • 在打开的文件中写入:
export PATH="$PATH:/usr/local/cuda-8.0/bin"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
  • 保存并关闭文件, 在终端中输入:
source ~/.bashrc

使环境更改生效。

  • 在终端中输入nvidia-smi,可以查询显卡状态。
    查询显卡状态
  • 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安装且配置成功!

3. 安装cuDNN

  1. 下载cuDNN,下载之前需要注册Nvidia开发者帐号,按要求注册即可。
  • 莫名其妙在我的笔记本上无法登录...在主机的Ubuntu中可以顺利登录...此条纯属吐槽,封IP真是够了...


    IP blocked
  • 登录后显示有多个版本可供选择,建议使用 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

    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)

4. 参考资料

  1. 知乎:Ubuntu 16.04.2 + GTX1080 + Python3 TensorFlow 配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容