为什么GPU比CPU更强大[关闭]


68

GPU如何比CPU更快?我读过一些文章,讨论GPU破解密码的速度比CPU快得多。如果是这种情况,那么为什么不能以与GPU相同的方式来设计CPU甚至达到速度?


7
GPU:有限的指令集可以执行专门的操作;专用硬件,可以非常快速且并行地执行有限的操作。
米奇·麦特

3
这并不是说它们的整体速度更快,而是某些类型的计算速度更快。
Asaph

搜索肯定会回答这个问题。
米奇·

2
GPU具有高吞吐量,CPU具有较高的速度(通常而言)。速度和吞吐量之间存在差异。
用户

Answers:


64

设计GPU时要牢记一个目标:真正快速地处理图形。由于这是他们唯一关心的问题,因此已经进行了一些专门的优化,这些优化使某些计算可以比传统处理器快很多。

在使用密码破解(或分子动力学的“在家折叠”项目)的情况下,程序员发现了利用这些优化过程以更快的速度处理密码的方法。

您的标准CPU必须执行与图形处理器不同的计算和处理类型,因此无法以类似的方式对其进行优化。


2
好的,这很有意义。谢谢完美的解释。
Faisal Abid

1
这不是真的。这些天来,GPU具有FMA指令和SIMD丰富的功能,可以满足ISA的全部需求。随时阅读这本已有4年历史的GCN第三代体系结构指令集400页的手册。 developer.amd.com/wordpress/media/2013/12/...
MarcusJ

70

GPU的速度是有代价的。实际上,单个GPU内核的工作速度比单个CPU内核慢得多。例如,费米GTX 580的核心时钟为772MHz。如今,您不希望您的CPU具有如此低的内核时钟...但是,GPU具有几个内核(最多16个),每个内核都以32宽SIMD模式运行。并行执行500个操作。但是,常见的CPU最多具有4或8个内核,并且可以在4宽SIMD中运行,这会降低并行性。

某些类型的算法(图形处理,线性代数,视频编码等)可以很容易地在如此众多的内核上并行化。破解密码属于该类别。但是,其他算法实际上很难并行化。这个领域正在进行研究……如果这些算法在GPU上运行,它们的性能将会非常

CPU公司现在正在尝试在不牺牲运行单线程程序能力的情况下实现GPU并行性。但是这项任务并不容易。该Larabee项目(目前已放弃)是问题一个很好的例子。英特尔已经对此进行了多年努力,但仍未在市场上出售。


1
您能否举一些难以并行化的算法示例?
ihebiheb

3
例如,具有深度递归的算法。例如,使用BFS / DFS作为其一部分的顺序图算法。如果无法从中取出BFS / DFS,则将很难并行化它,因为有人总是可以将单个路径作为图形放置,从而无论您使用多少处理器,都迫使您执行O(n)步骤。
CygnusX1'1/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.