智能

超越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技术和产品新动态