论文:https://i.cs.hku.hk/~cwu/papers/yhpeng-sosp19.pdf

译文:一个用于分布式DNN训练加速的通用通信调度器

摘要

我们提出ByteScheduler,一个用于分布式DNN训练加速的通用通信调度器。ByteScheduler基于我们最基本的分析:通过张量切分和重组来进行传输,可以得到理论上的最优结果,即使真实环境中有调度代价,性能表现也很不错。为了让ByteScheduler适用于各种DNN训练框架,我们介绍一种统一的抽象和一种依赖代理机制,使得可以在不破坏框架引擎原有依赖的基础上进行通信调度(注:这是什么东西?)。我们进一步介绍一种贝叶斯优化方法,可以在各种网络环境下,针对不同训练模型,来自动调整张量划分的尺寸,以及其他参数。ByteScheduler目前支持TensorFlow、PyTorch和MXNet,并且不用修改源码,兼容Parameter Server和all-reduce架构的梯度同步,TCP和RDMA网络都行。我们的实验证明,ByteScheduler训练的加速比是2.96。

介绍

深度神经网络(DNN)被广泛运用于各个领域,例如计算机视觉和自然语言处理等等。但是,训练DNN很耗时,主要是因为训练数据多,以及DNN模型的尺寸越来越大。加速DNN训练最常用的方法是数据并行。不幸的是,因为通信开销,它的性能常常比线性加速比差很远。作为一个大型在线服务提供商,在很多我们内部和公开训练任务中,通信通常占总训练时间的很大一部分。因此,很多通信加速方法被提出并且集成到

背景和动机

DNN训练和数据并行:

在深度学习中,DNN模型是通过迭代一个大数据集来训练的(也叫epoch),以最小化损失函数。

正向和反向传播:

在每个epoch期间,数据集被划分成mini-batch。在每次iteration,一个mini-batch逐层经过DNN并产生一个损失,这个过程叫正向传播(FP)。

张量划分:

实现细节 

ByteScheduler是用C++11和Python实现的。核心是一个通用Python库,用于所有ML框架。对于每个框架,都需要一个插件,用于PS或者all-reduce架构。插件通常用C++和Python混编。

ByteScheduler Core:

MXNet plugin:

PyTorch plugin:

TensorFlow plugin:

评估

讨论和未来方向

相关工作 

加速DNN训练的通信:

加速DNN训练的通信:

加速DNN训练的通信:

结论

ByteScheduler是一个用于分布式DNN训练加速的通用通信调度器。我们的实现,支持很多ML框架,包括MXNet、PyTorch和TensorFlow,兼容PS和all-reduce梯度同步,TCP和RDMA网络都行。ByteScheduler端到端可以加速196%。主要的设计思想包括:通信操作的统一抽象、依赖代理和系统参数自动调整。我们已经开源我们的实现,期待社区可以加入更多对已有和未来框架的支持。

转载于:https://www.cnblogs.com/yangwenhuan/p/11599258.html

一个用于分布式DNN训练加速的通用通信调度器相关推荐

  1. Hyperledger Grid:一个用于分布式供应链解决方案的框架

    Hyperledger在最近的一篇博文中发布了一个名为Hyperledger Grid的新项目.Grid是一个用于集成分布式账本技术(DLT)解决方案与供应链行业企业业务系统的框架.该项目提供了一个参 ...

  2. 一个IO的传奇一生 (9) -- Noop和Deadline调度器

    Linux中常见IO调度器 Noop调度器算法 Noop是Linux中最简单的调度器,这个调度器基本上没做什么特殊的事情,就是把邻近bio进行了合并处理.从IO的QoS角度来看,这个Noop调度器就是 ...

  3. 7种主流案例,告诉你调度器架构设计通用法则(干货!)

    女主宣言 今天小编为大家转载一篇来自DBAplus社群的干货文章,希望能够帮助大家对关于调度器的理解.作者张晨,Strikingly数据平台工程师,算法.分布式系统和函数式编程爱好者.Shanghai ...

  4. sweetalert_用于将SweetAlert集成到Vuejs的小包装器

    sweetalert VueSwal (VueSwal) A small wrapper for integrating SweetAlert to Vuejs. (Compatible with S ...

  5. 混合精度训练、分布式训练等训练加速方法

    以Pytorch为例 混合精度训练 Pytorch自动混合精度(AMP)训练 Pytorch自动混合精度(AMP)介绍与使用 1. 理论基础 pytorch从1.6版本开始,已经内置了torch.cu ...

  6. PolarFS :一个用于共享存储云数据库的超低延迟和容错分布式文件系统

    目录 1. 简介 2. 背景 3. 架构 4. I/O 执行模型 5. 一致性模型 6. FS中层的实现 7. 设计选择和经验教训 8. 价值评估 9. 相关工作 10. 结论 PolarFS : A ...

  7. 【论文翻译】SHINE 一个用于特定领域实体与异构信息网络链接的通用框架

    SHINE 一个用于特定领域实体与异构信息网络链接的通用框架 摘要 由多种类型的互联对象组成的异构信息网络正变得越来越流行,例如社交媒体网络和书目网络.在异构信息网络中,将从非结构化文本中检测到的命名 ...

  8. Google用更少标签生成图像,还提出一个用于训练评估GAN的库

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 译者 | 刘畅 责编 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 生成对抗网络(GAN)是属于一种强有力的深度生成模型.G ...

  9. 【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源

    此前,伯克利.TACC和UC戴维斯的研究人员使用新算法,在24分钟内训练完AlexNet,1小时训练完ResNet,创下了纪录.现在,他们继续推进,使用1024个CPU,在11分钟内训练完AlexNe ...

  10. 收藏 | PyTorch深度学习模型训练加速指南2021

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:LORENZ KUHN 编译:ronghuaiyang ...

最新文章

  1. 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(一)
  2. AI 一分钟 | 南京大学成立人工智能研究院;三星关联实体已收购 AI 搜索引擎创业公司Kngine的全部股份
  3. STM32-内存管理
  4. Javascript OrderBy
  5. IM群聊消息如此复杂,如何保证不丢不重?
  6. 7360清零方法_兄弟、联想、美能达、富士施乐全系列打印机加粉清零方法
  7. jenkins 集成java搅拌_java-Jenkins中的集成测试
  8. 华为谈“不造车” ,每辆车上赚1万元。王兴:特斯拉终于遇到真正的对手!...
  9. boot入门思想 spring_微服务架构之SpringBoot详解,夯实底层知识,带你轻松入门开发...
  10. Linux无盘工作站
  11. 再战图形,一图一世界
  12. 大学计算机基础通俗易懂教材,大学计算机基础(21世纪高等学校计算机规划教材)...
  13. 第18集丨不立志,天下无可成之事
  14. 蜡笔小新模拟器汉化版_蜡笔小新历险记PC电脑版-蜡笔小新历险记电脑版下载v1.12.20 官方最新版-西西软件下载...
  15. PIXI 精灵表和精灵动画
  16. 利用Matplotlib绘制各类图表
  17. 网易人工智能事业部:“悄无声息”再捞金!
  18. 儿童护眼灯怎么选?国家质检合格的儿童护眼灯
  19. 如何运用python画名字_[原创]如何使用Python在好友画我上画一个标准的汉字震惊朋友圈...
  20. 07 图形学——曲线曲面

热门文章

  1. mysql 清除主从_mysql主从同步及清除信息
  2. android listview 行高度自适应,Android ListView 长度自适应item的内容 计算listview的高度...
  3. 数据库的开窗函数学习
  4. vue项目实战环境的搭建 -- 项目创建及连接github(gitee同理)
  5. 算数基本定理 + 例题
  6. pve网卡直通虚拟机pve失联打不开解决方案,不用重新安装pve
  7. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_5 自定义类型转换器演示异常
  8. python2.7.11 for iOS 苹果上的python27环境
  9. 总结(6)--- python基础知识点小结(细全)
  10. radio按钮样式美化和checkbox按钮样式美化