我试图了解 Tensorflow 镜像策略和 Horovod 分布策略之间的基本区别是什么。
从文档和源代码调查中,我发现 Horovod ( https://github.com/horovod/horovod ) 正在使用消息传递协议 (MPI) 在多个节点之间进行通信。具体来说,它使用 MPI 的 all_reduce、all_gather。
根据我的观察(我可能错了)镜像策略也在使用 all_reduce 算法(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/distribute)。
他们都使用数据并行、同步的训练方法。所以我有点困惑它们有什么不同?差异仅在实现上还是存在其他(理论)差异?
以及镜像策略的性能与horovod相比如何?