优化 32 核计算机的 Tensorflow



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

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

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

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

您可以在此处找到有用的建议

使用时间线查看在以下情况下执行的内容

最新更新