首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow镜像策略和Horovod分布策略

Tensorflow镜像策略和Horovod分布策略
EN

Stack Overflow用户
提问于 2019-03-06 01:15:22
回答 2查看 971关注 0票数 6

我正在尝试理解Tensorflow镜像策略和Horovod分发策略之间的基本区别。

从文档和源代码调查中,我发现Horovod (https://github.com/horovod/horovod)使用消息传递协议在多个节点之间进行通信。具体地说,它使用了MPI的all_gather all_reduce。

根据我的观察(我可能是错的),镜像策略也使用all_reduce算法(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/distribute)。

它们都使用数据并行、同步训练方法。所以我有点困惑他们有什么不同?只是实现上的不同,还是有其他(理论上)的不同?

与horovod相比,镜像策略的性能如何?

EN

回答 2

Stack Overflow用户

发布于 2020-10-06 08:06:49

镜像策略有自己的all_reduce算法,它在幕后使用远程过程调用(gRPC)。

正如您所提到的,Horovod使用MPI/GLOO在多个进程之间进行通信。

票数 0
EN

Stack Overflow用户

发布于 2020-10-06 12:15:26

关于性能,我的一位同事在使用来自here的代码使用4个特斯拉V100 GPU之前进行了实验。结果表明,3种设置效果最好:带有all_reduce_spec=ncclreplicated、带有适当调整的allreduce_merge_scope (例如32)的collective_all_reducehorovod。我没有看到这三个之间的显著差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55008213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档