我猜这个张量流默认使用单核(当我不使用' Coordinator')时,因为tensorflow是python库。
但是,当我在Mac上看到Activity Monitor并运行tensorflow代码时 在默认设置下,python 3.6的$ CPU高于100%,线程数大于10.
张量流是否默认使用多核?
答案 0 :(得分:0)
Tensorflow是一个python库,但它本质上是本机C ++实现的包装器。每当你定义一个op时,就像这样:
with tf.device("/cpu:0"):
a = tf.Variable(3.0)
b = tf.constant(4.0)
c = a * b
... c
不是python变量a
和b
的乘法,而是tf.multiply
op,它没有那么简单CPU and GPU implementations。
所以它不应该让你感到困惑:tensorflow引擎试图使用所有可用的硬件功能来执行操作,特别是因为FAQ states是多核的:
各个操作系统具有并行实现,在CPU中使用多个内核,或在GPU中使用多个线程。
顺便说一下,值得注意的是"/cpu:0"
设备聚合多CPU系统上的所有CPU。
目前无法在特定CPU上固定节点或使用
只是所有CPU的一个子集。