【问题标题】:How Tensorflow uses CPU cores by default?Tensorflow 默认如何使用 CPU 内核?
【发布时间】:2019-11-05 20:40:32
【问题描述】:

假设我们没有任何GPUs。我们有一台机器,它有一个CPUN 内核。我想在 CPU 上训练一个神经网络,并希望尽可能多地利用 CPU。

我知道我可以设置 inter_op_parallelism_threadsintra_op_parallelism_threadsvariables 来控制 Tensorflow 中的并行性。但我想知道 Tensorflow 默认如何处理跨 CPU 内核的并行性?

我最初的猜测是默认情况下,Tensorflow 将所有 CPU 内核视为一个设备,并使用它们通过 Eigen 在所有内核上同时运行一个单个操作库,我们没有任何 inter_op 并行性(这意味着并行运行多个操作)。

我知道这个question。但这不是我要找的。我想知道 tensorflow 本身如何处理跨 CPU 内核的并行性。

【问题讨论】:

  • 如果你想优化 CPU,你可能应该使用 MKL 版本(我相信 Linnux 上的默认 conda 版本),它会默认使用尽可能多的内核
  • 谢谢@YaroslavBulatov,这是否意味着 tensorflow 默认不使用 inter_op_parallelism_threads 用于多核 cpu?

标签: c++ tensorflow parallel-processing


【解决方案1】:

我有类似问题的一些问题。发布了我的解决方案here。 我使用英特尔处理器,它有一些 CPU 优化参数 (openMP) 用于与 keras 进程进行线程处理,

import os
os.environ["OMP_NUM_THREADS"] = “16”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2019-11-19
    • 2019-02-11
    相关资源
    最近更新 更多