最近,字节跳动发布了一款通用高性能分布式训练框架 BytePS,该框架支持TensorFlow、Keras、PyTorch 和MXNet,并且可以在 TCP 或 RDMA 网络上运行。
BytePS GitHub 地址:https://github.com/bytedance/byteps
根据该项目的 GitHub 页面,BytePS 显著优于目前的开源分布式训练框架。例如在流行的公有云和同样数量 GPU 上,BytePS 的训练速度可以达到 Horovod (NCCL) 的两倍。
框架性能
开发团队在 BytePS 上测试了两个模型:VGG16(通信密集)和 Resnet50(计算密集)。测试使用了 Tesla V100 16GB GPU 集群,批大小都是 64。机器使用的是公有云上的虚拟机,每个机器有 8 个 GPU,集成了 NVLink。机器之间使用 20 Gbps TCP/IP 网络互通。在测试上,BytePS 在 Resnet50 的表现较 Horovod(NCCL)提高 44%,在 VGG16 则提升了 100%。

作者提供了 Docker 文件,帮助用户测试。
抛弃 MPI,迎接云计算
为什么 BytePS 的表现比 Horovod 好太多?主要原因是 BytePS 为云计算和共享集群设计,并抛弃了 MPI。
MPI 是高性能计算(High Performance Computing)的产物。当需要运行单一任务时,MPI 适合用于建立在同质化硬件的计算集群上。但是云计算(或者内部共享集群)是不一样的。
团队因此重新思考了最佳通信策略。总之,BytePS 不仅在机器内使用 NCCL,同时也重新部署了机器间的通信方式。
ByteP

字节跳动开源了BytePS,一个支持TensorFlow、PyTorch等的分布式训练框架,性能优于Horovod。BytePS针对云计算和共享集群设计,抛弃MPI,采用新的通信策略。在Resnet50和VGG16模型测试中,BytePS展现出显著的性能提升。
最低0.47元/天 解锁文章
247

被折叠的 条评论
为什么被折叠?



