为什么GPU的浮点运算能力比CPU强的多?

如题。

首先,「速度区别主要是来自于架构上的区别」是一个表面化的解释。对,架构是不同。但是这种不同是目前各个厂家选择的现状,还是由于本质的原因决定的?CPU 能不能增加核?GPU 那张图为什么不需要 cache?

首先,CPU 能不能像 GPU 那样去掉 cache?不行。GPU 能去掉 cache 关键在于两个因素:数据的特殊性(高度对齐,pipeline 处理,不符合局部化假设,很少回写数据)、高速度的总线。对于后一个问题,CPU 受制于落后的数据总线标准,理论上这是可以改观的。对于前一个问题,从理论上就很难解决。因为 CPU 要提供通用性,就不能限制处理数据的种类。这也是 GPGPU 永远无法取代 CPU 的原因。

其次,CPU 能不能增加很多核?不行。首先 cache 占掉了面积。其次,CPU 为了维护 cache 的一致性,要增加每个核的复杂度。还有,为了更好的利用 cache 和处理非对齐以及需要大量回写的数据,CPU 需要复杂的优化(分支预测、out-of-order 执行、以及部分模拟 GPU 的 vectorization 指令和长流水线)。所以一个 CPU 核的复杂度要比 GPU 高的多,进而成本就更高(并不是说蚀刻的成本高,而是复杂度降低了成片率,所以最终成本会高)。所以 CPU 不能像 GPU 那样增加核。

至于控制能力,GPU 的现状是差于 CPU,但是并不是本质问题。而像递归这样的控制,并不适合高度对齐和 pipeline 处理的数据,本质上还是数据问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-16
GPGPU主要是进行是进行图形渲染的 GPGPU的性能达到CPU的40倍这个说法是很不全面的 如果光说GPGPU在并行和密集浮点运算上达到CPU40倍性能这个或许可行(个人认为没有这么夸张,最好的GPGPU能达到最好的CPU的10倍就很令人吃惊的了,况且现在CPU出现了多核,这使CPU的运算大大提高了,而GPGPU貌似还限于单核),但在全运算上这么说就很没根据了 其实把GPU当作普通处理器使用依然有着不小的难度,其中最要命的恐怕就是GPU是被专门设计来处理图形,因此它的编程语言架构和编程环境都难通用。GPU运行非图形程序时,往往需要依靠极其复杂的算法和较为曲折的流程,GPU的强大运算潜力很多时候就在这样的迂回过程中被一点点耗尽。除此以外,由于没有统一的API和驱动支持,GPGPU程序的开发者不得不针对每个GPU架构开发对应的软件版本,使得把GPU当作普通处理器项目的推进难度倍增。 PS:这里说的CPU是人们通常意义上说的CPU简单的说GPU是被专门设计来处理图形 一颗主频为3GHz的 Pentium 4处理器的理论浮点计算速度为12GFLOPs/s,而GeForce 8800GTX的计算能力则达到惊人的500GFLOPs/s,与CPU相比,GPU在浮点运算上的优势非常明显 弱势:GPU运行非图形程序时,往往需要依靠极其复杂的算法和较为曲折的流程,GPU的强大运算潜力很多时候就在这样的迂回过程中被一点点耗尽。除此以外,由于没有统一的API和驱动支持,GPGPU程序的开发者不得不针对每个GPU架构开发对应的软件版本,这也使得可实现性难以体现 补充回答: 从接口技术和图形图象学上来详细分析这个问题我可能远不够资格了,理论上来说 操作系统是可以运行在CPU上的,先不考虑什么技术可行性只要Cache够大到能装下操作系统,如果把这问题化简单一点,用很大概的价格来看,同容量内存价格大概是硬盘的10倍以上,那么同容量的Cache大概也在内存价格10倍以上,再加上技术的加成性,就现在来说就象用GPU完全代替CPU一样还个未知的难题参考资料:
第2个回答  2013-08-16
GPU运行非图形程序时,往往需要依靠极其复杂的算法和较为曲折的流程,GPU的强大运算潜力很多时候就在这样... GPGPU程序的开发者不得不针对每个GPU架构开发对应的软件版本,使得把GPU当作普通处理器项目的推进难度倍增...本回答被网友采纳
第3个回答  2013-08-16
因为GPU需要强大的浮点运算。。而CPU不用.
第4个回答  2013-08-16
核心不同,架构不同,作用也不同,没有可比性

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网