GPGPU能效相​​对于CPU的解释?

时间:2013-01-29 15:21:04

标签: cuda opencl gpgpu energy

我听说过这样的说法,对于许多应用来说,GPU比多核CPU更节能,特别是在图形硬件得到充分利用的情况下。我无法找到论文,文章或描述导致该声明的特定架构特征的任何内容,或者在一组基准测试中直接比较GPU与CPU的能耗的科学研究。任何人都可以提供更多关于这种说法的支持的见解,或者指出一些显示它的证据的研究吗?

如果我不得不猜测,我会说它主要源于GPU时钟频率较低。另外,本文:

http://accel.cs.vt.edu/sites/default/files/paper/huang-hppac09-gpu.pdf

表明,部分原因是GPU只能更快地完成问题,因此即使GPU的峰值功耗更高,他们在该级别上花费的时间也比CPU短得多(同样,对于正确的问题)。任何人都可以添加更多吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

TL; DR回答:gpu中的更多晶体管实际上在计算上而不是在cpu中工作。

今天cpu的大功率效率杀手是一种权衡,允许在芯片上进行一般计算。无论是RISC,x86还是其他cpu架构,都有专用于cpu通用用途的额外硬件。这些晶体管需要电力,尽管他们没有做任何实际的数学计算。

快速cpus需要高级分支预测硬件和大型高速缓存,以避免冗长的处理,以后可能会在管道中丢弃。在大多数情况下,cpus一次执行一个指令(每个cpu核心,SIMD也帮助cpus ......),并且处理条件非常好。 Gpus依赖于对许多数据(SIMD /向量运算)执行相同的操作,并且在“if”和“for”语句中的简单条件下受到很大影响。

还有很多硬件用于获取,解码和调度指令 - 这对cpus和gpus来说都是如此。这个很大的区别在于,对于一​​个gpu,取指令+解码+调度晶体管与计算晶体管的比率往往要高得多。

这是关于他们的gpus如何随着时间的推移发生变化的AMD演示文稿(2011),但这确实适用于大多数gpus。 PDF link.通过了解gpus如何在某些计算中如此擅长的历史,它帮助我理解了gpus的强大优势。

我刚才回答了类似的问题。 SO Link.

答案 1 :(得分:0)

通常,这些声明可通过比较GFLOP性能和估算每个浮点运算的功率来支持,如this帖子所示。但这基本上就是你在上一句中所写的内容。

您还必须考虑到CPU和GPU架构针对不同的问题。虽然CPU核心(至少在x86上)具有深度流水线,大型指令集和非常复杂的缓存策略以迎合各种各样的问题,但GPU核心相当简单,因此功耗更低。为了弥补这一点,GPU中的计算核心比CPU中的核心要多得多。但你可能已经知道了。