目录
概述
Horovod是当下流行的分布式训练框架,它是Uber公司提出来的。受到百度的RingAllReduce项目的启发。Horovod成功之处是工程化做的非常好,它把梯度同步的概念抽象出来,作为一个单独的Python包,支持不同的框架。同时提出了Tensor Fusion和Gradient Compression技术来进一步提供通信性能,基本上被业界作为通用技术接受了。另外还提供TimeLine工具来方便进行性能调试。
以下是Horovod和PS的性能对比,可以看到它极大的提高了分布式训练的性能。
本文基于Horovod 开源项目 链接 对它的软件架构,以及典型的工作时序给出说明
软件架构
工作时序
horovod 对pytorch和tensorlfow的app 侵入代码非常少,典型的工作时序如上,app代码可以参考官方示例
pytorch app 使用 Horovod 示例
tensorflow app 使用 Horovod 示例