【问题标题】:Will Tensorflow Queue speed up data loading on a single CPU machine?Tensorflow Queue 会加速单 CPU 机器上的数据加载吗?
【发布时间】:2019-06-11 04:45:40
【问题描述】:

我目前有一些在 GPU 上运行良好的现有代码。我尝试在具有单个 GPU 的 Ubuntu 机器和具有多个 GPU 的集群服务器上运行它。两个实验都非常快。

但是,当我尝试在自己的笔记本电脑上使用一个 CPU(无 GPU)运行它时,它变得非常低……慢了 100 倍以上。

我知道当我没有用于训练的 GPU 时它会慢得多。但我真的希望了解“队列”是否受到这种硬件平台差异的影响。

通常,我们使用 CPU 通过“队列”将数据加载到 GPU,但使用单个 CPU 并使用 TensorFlow 队列没有任何意义。任何人都可以为我提供任何指导吗?

【问题讨论】:

  • 根据所提供的信息很难确定问题所在,但笔记本电脑的一般问题包括 CPU 时钟频率、CPU 内核、硬盘驱动器和偶尔的低 RAM 速度。 ... 在我的 Ubuntu 机器上,GPU 比 4 核 CPU 快 20 倍。

标签: python tensorflow queue gpu cpu


【解决方案1】:

如果 CPU 有多个内核,此建议可能会帮助您有效使用 CPU。

为了获得更好的性能,需要根据可用的物理核心数来设置包括OMP_NUM_THREADS、亲和域等几个参数。

您可以尝试以下有助于更好地利用处理器的优化步骤。

export OMP_NUM_THREADS=NUM_PARALLEL_EXEC_UNITS
export KMP_BLOCKTIME=30
export KMP_SETTINGS=1
export KMP_AFFINITY=granularity=fine,verbose,compact,1,0

NUM_PARALLEL_EXEC_UNITS 是物理内核的数量。

发现当 NUM_PARALLEL_EXEC_UNITS 等于物理内核数时性能更好。但这可能会有所不同。您可以尝试不同的值来选择最佳值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 2020-06-02
    相关资源
    最近更新 更多