优化32核计算机的Tensorflow

时间:2018-05-24 12:40:36

标签: tensorflow parallel-processing cpu-usage

我在Intel Xeon机器上运行张量流代码,其中包含2个物理CPU,每个CPU有8个内核和超线程,总共有32个可用的虚拟内核。但是,我运行代码保持系统监视器打开,我注意到这些32个vCore中只有一小部分被使用,平均CPU使用率低于10%。

我是张量流初学者,我没有以任何方式配置会话。我的问题是:我应该以某种方式告诉tensorflow它可以使用多少个核心?或者我应该假设它已经尝试使用所有这些但是在其他地方存在瓶颈? (例如,慢速访问硬盘)

1 个答案:

答案 0 :(得分:2)

默认情况下,TensorFlow将尝试使用所有可用的CPU资源。您无需为其配置任何内容。您可能会看到CPU使用率较低的原因有很多。以下是一些可能性:

  • 正如您所指出的,最常见的情况是输入管道缓慢。
  • 您的图表可能主要是线性的,即对相对少量数据的长窄操作链,每个数据都取决于前一个数据的输出。当单个操作在小输入上运行时,并行化它几乎没有好处。
  • 您也可以受内存带宽的限制。
  • 单个session.run()通话只需要很少的时间。所以,你最终会在python和执行引擎之间来回走动。

您可以找到有用的建议here

使用timeline查看

时执行的内容
相关问题