超越Horovod 字节跳动开源分散式训练框架BytePS
超越Horovod 字节跳动开源分散式训练框架BytePS 问耕 发自 凹非寺 量子位 出品 公众号 QbitAI 字节跳动开源了通用分散式训练框架BytePS,这个框架支援TensorFlow、Keras、PyTorch、MXNet,可以执行在TCP或RDMA网络中。 官方介绍称,BytePS大大优于现有的开源分散式训练框架。例如,在相同的条件下,BytePS的训练速度是Horovod+NCCL的两倍。 BytePS也登上了GitHub趋势热榜。 效能表现 为了展示BytePS的效能,官方测试了两个模型:VGG16(通讯密集型)和Resnet50(计算密集型),两个模型都以fp32精度进行训练。
训练使用了公有云上的虚拟机器,每个机器有8个GPU,启用了NVLink。这些GPU都是Tesla V100 16GB型号GPU,batch size设定为64/每GPU。硬件之间以20Gbps的TCP/IP网络连线。
测试表明,与Horovod (NCCL)相比,BytePS在VGG16训练上的速度快100%,Resnet训练速度快44%。
Horovod是Uber开源的深度学习工具,NCCL是英伟达释出的多讯框架。
原因解析
BytePS为什么比Horovod更强?
官方解释称,一个主要的原因是BytePS是专门为云和共享丛集而设计,并且抛弃了MPI。MPI是一个跨语言的通讯协议,用于编写平行计算机。
MPI是为高效能运算机而生,对于使用同类硬件构建的丛集以及执行单一任务更有效。但并不是云(或者内部共享丛集)的最佳选择。
因此字节跳动团队重新思考了最佳的通讯策略。简而言之,BytePS仅在机器内部使用NCCL,重新构建了机器内部的通讯。
BytePS还集成了许多加速技术,例如分层策略、流水线、张量分割槽、NUMA感知本地通讯、基于优先级的排程等等。
传送门
BytePS现已在GitHub上开源,地址如下:
https://github.com/bytedance/byteps
在GitHub上,还详细介绍了如何使用BytePS等相关资讯。
目前BytePS还不支援纯CPU训练。
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վᴗ ի 追踪AI技术和产品新动态
