OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

业界主流深度学习工具的基准评测

  • 2017-08-08
  • 本文字数:1889 字

    阅读完需:约 6 分钟

第六版论文中使用了不同的硬件平台、在三种不同类型的流行深度学习方法上对 GPU 加速工具的评估。根据基准评测结果,当存在 GPU 时,团队发现 Caffe 平台在全连接网络上表现更好,而 TensorFlow 在卷积神经网络和循环神经网络上都表现突出。GPU 内存是在 Caffe 等许多工具上运行大型网络的关键指标之一,CNTK 和 Torch 不能在 GTX 980(其有 4GB 内存)上运行 32 或更多个 mini-batch 大小的 ResNet-50,而 TensorFlow 在管理 GPU 内存上表现更好,并且其基本上可以在所有的配置情况下运行。cuBLAS 是一个高性能的 BLAS 库,但其 API 参数对实现好的结果来说是很重要的。在计算一些情况下的卷积运算时,FFT 是一个更好的选择。

在仅使用 CPU 的机器上,Caffe 在 CPU 并行上表现更好,TensorFlow 也在 CPU 资源利用上有很好的表现。在 CPU 并行机制上,使分配的线程等于 CPU 的核数可以得到更好的表现。

GTX 1080 有更高的基础时钟(1733 MHz)和更多 CUDA 内核,在大部分案例中也都获得了更好的结果。但是,Tesla K80 有更大的内存(12 GB),可以支持应用运行更大型的网络和更大的 mini-batch。此外,每一个 K80 卡还配备了 2 个 GPU 芯片,这可能能让其在运行并行程序时获得更好的表现,但在我们的基准评测中,它并没有得到充分的使用。

第六版时局限:团队没有测试跨多个 GPU 和多台机器的可扩展性,因为这种方法可能无法增强一些工具的主要特性。比如虽然 CNTK 支持跨多 GPU 和机器运行,但其它工具却不行。

论文第七版

深度学习已被证明是一种可成功用于许多任务的机器学习方法,而且它的广泛流行也将很多开源的深度学习软件工具开放给了公众。训练一个深度网络往往是一个非常耗时的过程。为了解决深度学习中巨大的计算难题,许多工具利用了多核 CPU 和超多核 GPU 这样的硬件特性来缩短训练时间。但是,在不同的硬件平台上训练不同类型的深度网络时,不同的工具会有不同的特性和运行性能,这让终端用户难以选择出合适的软件和硬件搭配。

在这篇论文中,团队的目标是对当前最先进的 GPU 加速的深度学习软件工具(包括:Caffe、CNTK、MXNet、TensorFlow 和 Torch)进行比较研究。团队将在两种 CPU 平台和三种 GPU 平台上使用三种流行的神经网络来评测了这些工具的运行性能。

团队做出了两方面的贡献:

  1. 对于深度学习终端用户,我们的基准评测结果可用于指导合适的软件工具和硬件平台的选择。
  2. 对于深度学习软件开发者,我们的深度分析为进一步优化训练的性能指出了可能的方向。

评测软件工具、算法

测试环境

对于数据并行的测试硬件:

单 CPU 卡评测结果

根据团队之前的研究,在 CPU 平台上测试特定的 mini-batch 大小 d 的实验能够获得最好的运行时间表现。不同网络使用的 mini-batch 的大小如表所示:

在单 GPU 卡的对比上,我们也展示了不同 mini-batch 大小的结果,从而演示 mini-batch 大小对表现的影响。

多 GPU 卡评测结果
FCN-R:在我们的测试中,mini-batch 的大小设置为 4096,结果如图 16 所示。在图 16(a) 中,我们可以看到 Caffe、CNTK 和 MXNet 的速度非常接近单 GPU 的情况;而在 TensorFlow 和 Torch 上的表现则相对好一点。当 GPU 数量翻倍时,CNTK 和 MXNet 的可扩展性最好,均实现了约 35% 的提速,Caffe 实现了大约 28% 的提速,而 Torch 和 TensorFlow 较差,只有约 10%。当我们把 GPU 数量从 2 个增加到 4 个时,TensorFlow 和 Torch 没有实现进一步的提速。

整体评测数据

  • fcn5

  • alexnet

结论

本次研究旨在对比现代深度学习软件工具的运行性能,测试它们在不同类型的神经网络和不同的硬件平台上的执行效率。团队通过实验结果表明,目前所有经过测试的工具都可以很好地利用 GPU,和使用 CPU 相比有着很大优势。然而,没有任何一个工具可以在所有方面胜过其他软件工具,这意味着也许存在进一步优化性能的方向。

在未来的研究中,首先,团队会将更多的深度学习软件工具(如百度的 Paddle)和硬件平台(如 AMD 的 GPU 和英特尔 XeonPhi)纳入这项基准研究。其次,团队计划评估在高性能 GPU 集群上这些工具的可扩展性。

附录
论文第二版
论文第三版,更新于 2016 年 9 月 3 日
论文第四版,更新于 2016 年 9 月 11 日
论文第五版,更新于 2016 年 9 月 19 日
论文第六版,更新于 2017 年 1 月 25 日
论文第七版
源代码下载地址


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2017-08-08 19:004410
用户头像

发布了 50 篇内容, 共 27.4 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

谈谈PhxSQL的设计和实现哲学(下)

OpenIM

我靠!都金三银四了还有人没看过阿里这份Java面试核心手册?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

炸裂!阿里十年老兵总结出SpringCloud入门到实战手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

元宇宙基础设施提供商【时空云】将承办【博鳌亚洲论坛区块链分论坛】

时空云

分布式存储 IPFS Filecoin 元宇宙

configparser 配置文件解析器

林十二XII

第一波场DAPP系统搭建|DAPP介绍

Geek_23f0c3

DAPP智能合约交易系统开发 波场链DAPP开发 第一波场

二叉树层次遍历及应用

高性能架构探索

面试 二叉树 遍历

五岳核心版上线!这份阿里开发手册核心版又将被多少人疯狂转载?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

遭GitHub封杀!百万人竟跪求这份阿里内部Java面试手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

【GaussDB精品课第1期】GaussDB(for openGauss)数据库,打造自研世界级产品

华为云数据库小助手

GaussDB 课程 GaussDB(for openGauss) 华为云视频 华为云数据库

Tapdata肖贝贝:实时数据引擎系列(三) - 流处理引擎对比

tapdata

拒不外传!阿里内部耗重金找人总结出这份并发编程手册(全彩版)

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

支持HDMI-IN接口的安卓工控主板有哪些?

双赞工控

云行·数治·慧用丨边缘云一体机赋能基层实现边缘侧数据智能

浪潮云

云计算

合约量化策略系统搭建,合约策略交易软件开发

终于有阿里P8从开发、运维两个角度总结出了Redis实战手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Pandas教程-4-DataFrame数据筛选(中)

Peter

Python 数据分析 pandas

谈谈PhxSQL的设计和实现哲学(上)

OpenIM

震撼!多名阿里资深专家联合撰写深入理解Redis设计源码手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Pandas教程-3-DataFrame数据筛选(上)

Peter

Python 数据分析 pandas

硬科技热度有增无减,现在入局能否搭上赛道快车?

创业邦

极狐GitLab 和 ArgoCD 的集成实践

极狐GitLab

Kubernetes gitlab 极狐GitLab ArgoCD

mycat入门:简介和安装

小鲍侃java

9月日更

史上最强!这份在各大平台获百万推荐的Java核心手册实至名归

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

源码 | 解析 Redo Log 实现方式

RadonDB

MySQL 数据库 RadonDB

Pandas教程-1-Series类型数据

Peter

Python 数据分析 pandas

Pandas教程-2-10种方式创建DataFrame

Peter

Python 机器学习 pandas

源码大放送:基于Pyecharts的苏州旅游攻略

Peter

Python 数据分析 爬虫

Application.mk

Changing Lin

9月日更

☕【JVM技术指南】「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!

洛神灬殇

JVM TLAB 锁升级 内存分配 9月日更

上线几小时下载量破百万!无价的这份阿里并发编程图册就这么强势

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

业界主流深度学习工具的基准评测_语言 & 开发_麦克周_InfoQ精选文章