内核在多核上运行速度很快,但在GPU上运行速度相对较慢

问题描述:

有人可以提出一些算法,其中多核处理器的性能优于GPU?我知道混合方法仍然会更快,但我真正想要的是了解GPU仍然落后于多核的领域。内核在多核上运行速度很快,但在GPU上运行速度相对较慢

在适宜的顺序从最适合最适合:

  • 的GPU只能加速SIMD类型的工作负载,所以他们是任务并行操作没有好(如使-jN)。
  • 与CPU相比,GPU没有太多缓存,它们的原子操作相对较慢;所以它们远不如使用基于指针的结构(如树)的CPU。
  • 诸如图像处理或计算机视觉等工作负载处于灰色区域,GPU优势(纹理映射硬件,更多内核)可能会因CPU优势(更好的SIMD整数支持,更高的时钟速率)而被抵消。如果实际的处理是以浮点的方式完成的,那么对GPU来说可能是一个冲洗或轻微的优势;如果处理是以整数形式完成的,并且可以映射到SSE2指令,则CPU将粉碎GPU。

GPU擅长使用大量单精度浮点数据并行工作负载。

任何卸载到GPU的工作负载也会导致数据传输成本。

+0

是的,我知道指针跟踪算法具有空间局部性的问题,而且GPU的有较小的缓存。但GPU可以通过硬件多线程来隐藏长时间的内存延迟。就浮点性能而言,GPU是优越的,基于整数的计算在多核上更胜一筹。那么我们可以说,基于整数计算的指针追踪算法在GPU上运行速度慢于Multicores的几率? – nurabha 2011-12-16 12:47:15

英特尔的一些人做了一些研究,他们在现代多核CPU和GPU上比较了科学计算。也许你觉得很有趣。第5页的图1显示了结果。

Lee等人,“揭穿100X GPU与CPU误区二:吞吐量计算的CPU和GPU的评价”: http://www.hwsw.hu/kepek/hirek/2010/06/p451-lee.pdf