字节跳动开源高性能分布式训练框架 BytePS:兼容 TensorFlow 等

开源最前线(ID:OpenSourceTop) 综合整理

近日,字节跳动人工智能实验室宣布开源一款高性能分布式深度学习训练框架 BytePS,在性能上颠覆了过去几年 allreduce 流派一直占据上风的局面,超出目前其他所有分布式训练框架一倍以上的性能,且同时能够支持 Tensorflow、PyTorch、MXNet 等开源库。



目前,BytePS在GitHub上已经获得1401个Star,167个Fork(GitHub地址:https://github.com/bytedance/byteps



性能表现


官方测试了两个模型:VGG16(通信密集型)和Resnet50(计算密集型)。两个模型都使用fp32进行训练。


官方团队使用Tesla V100 16GB GPU,并将批量大小设置为每GPU 64 个。这些机器实际上是流行的公共云上的VM。每台机器都有8个V100 GPU,支持NVLink。机器与20 Gbps TCP / IP网络互连。


Resnet50的BytePS优于Horovod(NCCL)44%,VGG16优于100%。BytePS如何能够超越Horovod?其中一个主要原因是BytePS专为云和共享集群而设计,并抛弃了MPI。



BytePS 团队也在配有 100Gbps 的 RDMA 网络的私有集群做了测试,BytePS 也有一定的性能提升,具体分析参见 Github( https://github.com/bytedance/byteps)。


此前行业里的 PS 实现,都是针对特定通用框架,例如专门为 TensorFlow 实现的 PS,也有专门为 MXNet 实现的 PS。


BytePS通过实现一个通用的抽象层,抽象层可以被各种通用框架引用,实现了同时支持多个框架的可能性,因此能够支持 Tensorflow、PyTorch、MXNet 等行业主流训练框架。



BytePS 提供了 TensorFlow、PyTorch、 MXNet 以及 Keras 的插件,用户只要在代码中引用 BytePS 的插件,就可以获得高性能的分布式训练。BytePS 的核心逻辑,则实现在 BytePS core 里。具体的通信细节,完全由 BytePS 完成,用户完全不需要操心。


BytePS团队表示:深度学习领域仍然有非常大的空间和可能性值得行业同仁们一起探索,开源BytePS,是希望利用BytePS在性能和功能上的先进性,降低开发者和深度学习领域参与者们的门槛,帮助更多同道中人一起探索深度学习,提升AI应用效率。

推荐↓↓↓
开源最前线
上一篇:2019年6月Github上最热门的Java开源项目! 下一篇:2019年6月GitHub上最热门的开源项目!