了解分布式TensorFlow的概念基础知识



让我先描述群集设置:

  • 我有两个节点(每个节点有2个GPU)。我称它们为节点A和节点B
  • 每个节点都有自己的SSD存储。
  • oar是所使用的群集管理器。

我已经浏览了分布式的TensorFlow文档,但是有一些功能基础知识我无法正确理解,因此这个问题。

考虑以下情况:

  • 我在节点A上复制了大约600 GB的数据。
  • 我可以使用桨专门要求在两个节点上分配4个GPU。

如果我想使用分布式TensorFlow训练模型:

  1. 如何为tf.train.clusterspec指定网络地址?这些网络地址是什么?在文档中是诸如localhost:2222诸如cluster manager?
  2. 保留的名称:2222
  3. 我的数据被复制到节点A。在培训期间,TensorFlow本身将负责将此数据作为输入发送给Node B上的GPU?
  4. 我需要使用tf.device()?
  5. 如果我还想使用一些其他CPU节点,我将必须事先拥有它们的名字并将其放入代码中?
  1. 您的客户端创建图形并在工作人员上执行此图。如果使用参数服务器中的howto中使用图间复制,则客户端和工作者是相同的过程。此过程只需要使用with tf.device为当前节点创建图形的一部分。如果您使用单个客户端使用图表内复制,则您的客户端需要使用多个with tf.graph部分为所有节点创建图形。

使用单独的客户端/工作流程的仪表内复制的最简单示例在这里

  1. 您通常需要通过群集规范提前配置所有节点,并且它们的名称被顺序分配为/job:worker/task:0/job:worker/task:1

最新更新