首页 > 解决方案 > Tensorflow分布式训练高带宽参数服务器

问题描述

我们使用参数服务器策略在分布式模式下训练了一个 DNN 模型。该模型有一个嵌入层和一些代码,如

with tf.colocate_with(embeddings):
   tf_output = tf.nn.embedding_lookup_sparse(embeddings, tf_ids, name=name + '_lookup')

由于网络带宽饱和,这导致工作人员的 GPU 峰值约为 10%(非常低)。如果我们注释掉with colocate_with(embeddings). 工人的 GPU 提高了 30% 以上。

好奇这可能的原因是什么。由于嵌入是在 PS 上分配的,因此差异似乎embedding_lookup发生在哪里(在工人或 PS)。神秘的部分来了。colocate_with意味着在 PS 上嵌入变量和嵌入查找操作。

标签: tensorflowmachine-learningdistributed-system

解决方案


推荐阅读