【问题标题】:tensorflow, how does it work in paralleltensorflow,它是如何并行工作的
【发布时间】:2017-06-22 21:33:40
【问题描述】:

我正在学习机器学习和张量流。 但我有一个问题 我看到了 Tensorflow 默认使用多个线程的文档。 所以我尝试使用 log 来检查一下。

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
 x = tf.constant(2)
 y2 = x - 66
 y1 = x + 300
 y = y1 + y2
 result = sess.run(y)
 print(result)

然后我可以得到下面的结果。

常量:(常量):/job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] Const: (Const)/job:localhost/replica:0/task:0/cpu:0 添加:(添加):/job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] 添加:(Add)/job:localhost/replica:0/task:0/cpu:0 子:(子):/job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] sub: (Sub)/job:localhost/replica:0/task:0/cpu:0 add_1:(添加):/job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] add_1: (Add)/job:localhost/replica:0/task:0/cpu:0 添加/y: (常量): /job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] add/y: (Const)/job:localhost/replica:0/task:0/cpu:0 sub/y: (常量): /job:localhost/replica:0/task:0/cpu:0 我 tensorflow/core/common_runtime/simple_placer.cc:827] sub/y: (Const)/job:localhost/replica:0/task:0/cpu:0 238

这似乎是并行和同步工作,对吗? 是默认的吗?

【问题讨论】:

  • 设备放置只会告诉您操作在哪个设备(CPU/GPU)上运行。要弄清楚 CPU 上的并行性,您可以查看timeline。一般来说,存在操作内和操作间并行性。

标签: python tensorflow


【解决方案1】:

查看direct_session.c和executor.cc中的实现,这里为Graph的每个partition创建ExecutorState,并使用一个threadpool来执行每个准备处理的节点。

在下面的函数中,“就绪”是一个用图的输入节点初始化的向量,因此每个节点都将在一个单独的线程中运行,并继续执行该分支中满足其依赖关系的节点。随着跨线程处理的继续,不同节点的依赖关系将得到满足并被执行。

void ExecutorState::RunAsync(Executor::DoneCallback done)
    // Schedule to run all the ready ops in thread pool.
    ScheduleReady(ready, nullptr);
}

ExecutorState::ScheduleReady是触发并行的函数,在节点准备好处理的代码中调用,包括ExecutorState::RunAsync和ExecutorState::NodeDone

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2017-09-10
    • 2017-12-21
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多