【问题标题】:Model parallelism in TensorFlow multi-gpu trainingTensorFlow 多 GPU 训练中的模型并行性
【发布时间】:2020-04-25 22:00:28
【问题描述】:

我正在使用 tensorflow 在单台机器上训练多个 GPU 中的模型。但是,我发现速度比在单个 GPU 上训练要慢得多。我想知道 tensorflow 是并行还是按顺序在不同的 GPU 中执行子模型。例如:

x = 5
y = 2
with tf.device('/gpu:0'):
     z1 = tf.multiply(x, y)
with tf.device('/gpu:1'):
     z2 = tf.add(x, y)

/gpu:0/gpu:1里面的代码是顺序执行的吗?如果按顺序,我怎样才能让这两个部分并行执行?假设这两个部分不相互依赖。

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    在 TensorFlow 中,只有第二个块(在 gpu:1 内)会执行,因为没有任何东西依赖于第一个块。

    【讨论】:

    • 所以如果块不依赖,那么它们将并行执行。这是正确的吗?
    • 如果它们不依赖,它们将并行执行,是的。
    【解决方案2】:

    是的,它是按顺序执行的,就其性质而言,with 块将等待其计算完成,然后再移动到下一个代码块。

    您可以从 tensorflow 实现队列和线程,以利用您的额外计算。

    请参考 tensorflow 的教程: https://www.tensorflow.org/api_guides/python/threading_and_queues

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2020-11-27
      • 1970-01-01
      • 2021-09-24
      • 2021-04-19
      • 2017-03-30
      • 1970-01-01
      • 2018-12-02
      • 2018-03-03
      相关资源
      最近更新 更多