2

我听说对于许多应用程序来说,GPU 比多核 CPU 更节能,尤其是在图形硬件得到充分利用的情况下。我很难找到描述导致该声明的特定架构特征的论文、文章或任何内容,或者在一组基准测试中直接比较 GPU 与 CPU 的能耗的科学研究。谁能提供更多关于这一主张的支持的见解,或者向我指出一些显示证据的研究?

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

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

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

谢谢!

4

2 回答 2

4

TL;DR 回答:gpu 中的晶体管实际上比 cpu 中的更多。

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

快速 CPU 需要先进的分支预测硬件和大容量缓存,以避免冗长的处理,这些处理可能会在流水线的后期被丢弃。在大多数情况下,cpus 一次执行一条指令(每个 cpu 核心,SIMD 也有助于 cpus ......),并且处理条件非常好。Gpus 依赖于对多条数据执行相同的操作(SIMD/向量操作),并且在 'if' 和 'for' 语句中发现的简单条件受到很大影响。

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

Here is an AMD presentation (2011) about how their gpus have changed over time, but this really applies to most gpus in general. PDF link. It helped me understand the power advantage of gpus by knowing a bit of the history behind how gpus got to be so good at certain computations.

I gave an answer to a similar question a while ago. SO Link.

于 2013-01-29T17:09:41.620 回答
0

通常,这些声明是通过比较 GFLOP 性能和估计每个浮点运算的功率来支持的,如本文所示。但这基本上就是你在最后一句话中写的。

您还必须考虑 CPU 和 GPU 架构针对不同的问题。CPU 内核(至少在 x86 上)具有深管道、大型指令集和非常复杂的缓存策略来解决各种问题,而 GPU 内核相当简单,因此消耗的功率要少得多。为了弥补这一点,GPU 中的计算核心比 CPU 中的多得多。但你可能已经知道了。

于 2013-01-29T16:20:57.233 回答