pytorch 多 CPU 推理,速度增益变缓怎么办?

使用 pytorch 在 cpu 上推理, 发现一个问题:

  • 1 核 CPU 推理的速度是 7.5 张图片/秒
  • 32 核 CPU 推理的总速度是 15.5 张图片/秒
限制一核是通过 MKL_NUM_THREADS=1 环境变量实现

使用了 32 倍的 cpu 资源的情况下,推理速度居然只提升了 15.5/7.5=2 倍???

但是这 32 核是都是 100% 都占满了

使用 resnet50

这正常吗?大家遇到过吗?

代码就先不贴了
阅读 2.8k
1 个回答

这种情况是正常的,Amdahl定律,通信开销,内存带宽限制,PyTorch的并行策略,因为这几个点影响的,优化一下代码并行的,减少处理器之前通信,尽量用连续的内存,减少内存带宽,并行计算可以用卷积神经网络(CNN),并行计算的库Intel的MKL库,还有就是用GPU比CPU更适合并行计算。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题