我目前已有一些可以在GPU上正常运行的代码。我试图在具有单个GPU的Ubuntu计算机和具有多个GPU的集群服务器上运行它。这两个实验都非常快。
但是,当我尝试在自己的带有一个CPU(没有GPU)的笔记本电脑上运行它时,它变得非常低……慢了100倍以上。
我知道,如果我没有用于训练的GPU,速度会慢很多。但是我真的希望了解“队列”是否受这种硬件平台差异的影响。
通常,我们使用CPU通过“队列”将数据加载到GPU,但使用一个CPU并使用Tensorflow队列则毫无意义。有人可以为我提供任何指导吗?
答案 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等于物理核心数时,发现性能会更好。但这可能有所不同。您可以尝试不同的值以选择最佳值。