我目前有一些在 GPU 上运行良好的现有代码。我尝试在具有单个 GPU 的 Ubuntu 机器和具有多个 GPU 的集群服务器上运行它。这两个实验都非常快。
但是,当我尝试在我自己的笔记本电脑上用一个 CPU(没有 GPU)运行它时,它变得非常低......速度慢了 100 多倍。
我知道当我没有用于训练的 GPU 时它会慢得多。但我真的希望了解“队列”是否受这种硬件平台差异的影响。
通常,我们使用 CPU 通过“队列”将数据加载到 GPU,但玩一个 CPU 并使用 Tensorflow 队列没有任何意义。有人可以为我提供任何指导吗?
如果 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 等于物理内核数时,发现性能更好。但这可能会有所不同。您可以尝试不同的值以选择最佳值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句