Tensorflow Queue会加快单个CPU机器上的数据加载速度吗?

时间:2019-01-17 02:40:03

标签: python tensorflow queue gpu cpu

我目前已有一些可以在GPU上正常运行的代码。我试图在具有单个GPU的Ubuntu计算机和具有多个GPU的集群服务器上运行它。这两个实验都非常快。

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

我知道,如果我没有用于训练的GPU,速度会慢很多。但是我真的希望了解“队列”是否受这种硬件平台差异的影响。

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

1 个答案:

答案 0 :(得分:0)

如果有多个内核,此建议可以帮助您有效使用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等于物理核心数时,发现性能会更好。但这可能有所不同。您可以尝试不同的值以选择最佳值。