【问题标题】:Why are GPUs more powerful than CPUs [closed]为什么 GPU 比 CPU 更强大 [关闭]
【发布时间】:2020-09-30 17:18:59
【问题描述】:

GPU 如何比 CPU 更快?我读过有关 GPU 在破解密码方面的速度比 CPU 快得多的文章。如果是这样,那为什么 CPU 不能像 GPU 一样设计成速度一样呢?

【问题讨论】:

  • GPU:执行特殊操作的指令集有限;专用硬件可以非常快速地并行执行有限的操作。
  • 并不是说它们在所有方面都更快,只是在某些类型的计算中更快。
  • 搜索肯定会回答这个问题。
  • GPU 吞吐量高,CPU 速度快(一般来说)。速度和吞吐量之间存在差异。

标签: cpu gpu


【解决方案1】:

GPU 获得速度是有代价的。单个 GPU 内核实际上比单个 CPU 内核工作得慢得多。例如,Fermi GTX 580 的核心时钟为 772MHz。你现在不希望你的 CPU 有这么低的核心时钟...... 然而,GPU 有几个内核(最多 16 个),每个内核都以 32 宽的 SIMD 模式运行。这带来了 500 个并行操作。然而,普通 CPU 最多有 4 或 8 个内核,并且可以在 4 宽 SIMD 中运行,从而降低了并行度。

某些类型的算法(图形处理、线性代数、视频编码等)可以在如此大量的内核上轻松并行化。破解密码属于该类别。 然而,其他算法真的很难并行化。这方面的研究正在进行中……如果这些算法在 GPU 上运行,它们的性能将非常很差

CPU 公司现在正试图在不牺牲运行单线程程序的能力的情况下接近 GPU 并行性。但这项任务并非易事。 Larabee project(目前已弃用)就是一个很好的例子。英特尔多年来一直在研究它,但它仍然无法在市场上销售。

【讨论】:

  • 你能举一些难以并行化的算法的例子吗?
  • 例如,具有深度递归的算法。例如,使用 BFS/DFS 作为其一部分的顺序图算法。如果你不能从中取出 BFS/DFS,你将很难并行化它,因为有人总是可以将单个路径作为图形,迫使你执行 O(n) 步骤,而不管你的处理器数量是多少。
【解决方案2】:

GPU 的设计初衷是为了一个目标:真正快速地处理图形。由于这是他们唯一关心的问题,因此已经进行了一些专门的优化,允许某些计算比在传统处理器中运行得更快。

在密码破解(或分子动力学“folding at home”项目)的情况下,程序员已经找到了利用这些优化过程以更快的速度破解密码等事情的方法。

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

【讨论】:

  • 嗯,这很有意义。谢谢完美的解释。
  • 这不是真的。如今,GPU 拥有完整的 ISA,带有 FMA 指令和大量 SIMD。请随意阅读这本 4 年前的 GCN 第三代架构指令集 400 页手册。 developer.amd.com/wordpress/media/2013/12/…
猜你喜欢
  • 2017-07-24
  • 1970-01-01
  • 2022-06-29
  • 2012-08-17
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
相关资源
最近更新 更多