业界 | Poseidon:高效的分布式深度学习通信架构

选自arXiv

机器之心编译

参与:蒋思源、吴攀

近日,卡耐基梅隆大学(CMU)和 Petuum 推出了新一代高效的分布式深度学习通信架构 Poseidon。Poseidon 是一个易于使用,并能放大 DL 程序在 GPU 集群性能的通信架构。已存的 DL 程序不需要更改代码就能通过 Poseidon 在多个机器上自动最优地实现并行化,加速效果和机器数量呈线性增长关系。机器之心简要地介绍了该论文,详细内容请查看原论文。

论文:Poseidon: An Efficient Communication Architecture for Distributed Deep Learning on GPU Clusters

论文链接:https://arxiv.org/abs/1706.03292

深度学习模型在单 GPU 机器上可能需要花费数周的时间进行训练,因此将深度学习分布到 GPU 集群进行训练就显得十分重要了。然而相对于 CPU,拥有更大的吞吐量的 GPU 允许单位时间内处理更多的数据批量(batches),因此目前的分布式 DL 因为大量参数频繁地在网络中进行同步而表现不佳。

我们提出了 Poseidon,它是一个分布式 DL 在 GPU 上可实现高效通信的架构。Poseidon 利用深度程序中的层级模型结构而叠加通信与计算,这样以减少突发性网络通信。此外,Poseidon 使用混合的通信方案,并根据层级属性和机器数量优化每一层同步所要求的字节数。我们表明 Poseidon 能使 Caffe 和 TensorFlow 在 16 个单 GPU 机器上实现 15.5 倍的加速,而且该实验还是在有带宽限制(10GbE)并挑战 VGG19-22K 图像分类网络下完成的。此外,Poseidon 能使 TensorFlow 在 32 个单 GPU 机器上运行 Inception-V3 达到 31.5 倍的加速,相比于开源的 TensorFlow 实现 50% 的性能提升(20 倍加速)。

图1. 六层卷积神经网络

图 2:(a)参数服务器和(b)分布式 ML 的充分因子 broadcasting。

图 3:分布式环境中的(a)传统反向传播和(b)无等待(wait-free)反向传播。

表 2:用于参数同步的 Poseidon API。

图 4:Poseidon 架构的概览。

表 3:神经网络的评估。其中展示了单结点批量大小,这些批量大小是基于文献中的标准报告而选择的(通常最大的批量大小正好是 GPU 的内存大小)。

图 5:使用 Poseidon 平行化的 Caffe 和 40GbE 带宽训练的 GoogLeNet、VGG19 和 VGG19-22K,及它们训练时的吞吐量变化。单节点 Caffe 设置为基线(即加速=1)。

图 6:使用 Poseidon 平行化的 Caffe 和 40GbE 带宽训练的 Inception-V3、VGG19 和 VGG19-22K,及它们训练时的吞吐量变化。单节点 TensorFlow 设置为基线(即加速=1)。

图 7:在 8 个节点上使用不同系统训练三种网络的 GPU 计算分解和延迟时间。

图 8:使用 Poseidon 平行化的 Caffe 和不同网络带宽训练的 GoogLeNet、VGG19 和 VGG19-22K,及它们训练时的吞吐量变化。单节点 Caffe 设置为基线(即加速=1)。

图 9:(a)加速 vs. 节点数量和(b)使用 Poseidon TensorFlow 与原始 TensorFlow 训练 ResNet-152 的最佳测试误差 vs. epochs。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-06-17

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

如何成为一名成功的“炼丹师”——DL训练技巧

---- ---- 今天给大家讲讲DNN(深度神经网络)在训练过程中遇到的一些问题,然后我们应该怎么去注意它,并学会怎么去训练它。 1、数据集的准备: 必须要...

3284
来自专栏机器之心

学界 | 谷歌大脑提出通过多文档摘要方法生成维基百科,可处理较长序列

3277
来自专栏AI科技评论

开发 | 模型表现不好怎么办?37条妙计助你扭转局势

AI 科技评论按:读论文,看别人的模型的时候仿佛一切都顺利成章,可是等到自己训练模型的时候,麻烦一个接一个…… AI 科技评论找到了一篇国外大神 Slav Iv...

3496
来自专栏数据科学与人工智能

【Python环境】python的Orange包实现机器学习与数据挖掘的分类问题

Orange是Python语言中一个强大的机器学习包,主要用于实现数据挖掘和有监督的机器学习,包括分类,回归等等。在Orange的使用过程中并不需要用户像使用S...

4159
来自专栏腾讯Bugly的专栏

基于 TensorFlow 在手机端实现文档检测

手机端运行卷积神经网络的一次实践 — 基于 TensorFlow 和 OpenCV 实现文档检测功能 1. 前言 本文不是神经网络或机器学习的入门教学,而是通过...

5914
来自专栏AI科技大本营的专栏

技术 | 如何在Python下生成用于时间序列预测的LSTM状态

长短期记忆网络(LSTM)是一种强大的递归神经网络,能够学习长观察值序列。 LSTM的一大优势是它们能有效地预测时间序列,但是作这种用途时配置和使用起来却较为...

3887
来自专栏大数据文摘

资源 | 给卷积神经网络“修理工”的一份“说明书”

这篇文章的主要内容来自作者的自身经验和一些在线资源(如最出名的斯坦福大学的CS231n课程讲义),是关于如何调试卷积神经网络从而提升其性能的。

1001
来自专栏机器之心

资源 | 用PyTorch搞定GluonCV预训练模型,这个计算机视觉库真的很好用

项目地址:https://github.com/zhanghang1989/gluoncv-torch

1235
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何在时序预测问题中在训练期间更新LSTM网络

使用神经网络解决时间序列预测问题的好处是网络可以在获得新数据时对权重进行更新。 在本教程中,你将学习如何使用新数据更新长短期记忆(LTCM)递归神经网络。 在...

3456
来自专栏大数据文摘

深度 | 你的神经网络不work? 这37个原因总有一款适合你!

1433

扫码关注云+社区

领取腾讯云代金券