BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 麦克周 关注 22 他的粉丝 发布于 2017年8月9日. 估计阅读时间: 6 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

第六版论文中使用了不同的硬件平台、在三种不同类型的流行深度学习方法上对 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 和机器运行,但其它工具却不行。

论文第七版 
be.JPG-21.6kB

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

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

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

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

评测软件工具、算法

测试环境

be1.JPG-34kB

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

be3.JPG-21.1kB

单CPU卡评测结果

be2.JPG-30.1kB

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

be9.JPG-16.1kB

在单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 
    be4.JPG-51.9kB

be5.JPG-58.6kB

be6.JPG-58.9kB

be7.JPG-68.3kB

  • alexnet

be8.JPG-65.9kB

be10.JPG-68.7kB

be11.JPG-54.6kB

be12.JPG-71kB

be13.JPG-66.8kB

结论

本次研究旨在对比现代深度学习软件工具的运行性能,测试它们在不同类型的神经网络和不同的硬件平台上的执行效率。团队通过实验结果表明,目前所有经过测试的工具都可以很好地利用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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT