首页 > 解决方案 > Tensorflow Queue 会加速单 CPU 机器上的数据加载吗?

问题描述

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

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

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

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

标签: pythontensorflowqueuegpucpu

解决方案


如果 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 等于物理内核数时,性能会更好。但这可能会有所不同。您可以尝试不同的值来选择最佳值。


推荐阅读