为了账号安全,请及时绑定邮箱和手机立即绑定

计算的性质:理解CPU、GPU和QPU如何解决不同问题

最近我和朋友聊了一次天。因为我刚换了份新工作在量子计算领域,我们就聊到了计算的本质。更具体地说,我们讨论了各种计算芯片:CPU、GPU、APU、TPU、QPU……确实不少。在这篇文章中,我想记录下那次对话中的重要见解。请注意,这里的严谨程度基本为零。这主要是为了给你一个计算的直觉上的理解,而不是一个确定性的框架。

比如说,什么是计算啊?

如果你查字典,会看到类似“数学计算的过程”这样的解释。虽然从技术上讲是正确的,但这帮助不大。当人们谈论“计算”或“计算过程”时,他们很少是指实际的数学。更经常地,他们是指在电脑上解决问题。问题的初始条件在电脑上通常表示为一串数字,而找到解决方法通常涉及一系列数学运算。对我们来说,计算就是用电脑解决问题的过程。

问题空间™指南

如果你眯起眼睛,忽略这里的所有简化,我们可以引入一个概念来帮助我们直观地理解不同的计算模式。我将称这个问题的ProblemSpace™为我们试图解决的问题空间。ProblemSpace™是一个图,每个叶节点代表一个可能的解决方案,每条边表示一个逻辑分支。为了更直观地理解,让我们来看一个例子,比如对一个数字求平方的ProblemSpace™:

把一个数平方起来非常简单

嗯,确实没什么特别激动人心的——就像对一个数进行平方运算。这是一个简单的操作:我们输入一个数字,得到结果。整个过程没有分支;结果总是基于初始条件的一系列操作的结果。现在让我们来考虑取一个数的绝对值的问题空间(ProblemSpace™)。

求一个数的绝对值只是一个稍微复杂一些的计算而已

如果数字是正数,那么它的绝对值就是数字本身。如果它是负数,我们就把它乘以-1,。这在ProblemSpace™中引入了一个简单的分支点,数字要么直接通过,要么乘以-1。最后,为了构建我们基础知识,接下来我们来找出四个数字中的最小值。

我们在这里看得有点费劲,尽量不要想太多。

从纯粹的逻辑角度来说,我们需要考虑这四个输入数字以找到最小值。在这里,我们没有分支,而是汇聚成一点。有了这个基础,我们可以对ProblemSpaces™(问题空间)做一些一般的观察。

基于问题空间™的更有趣分析方法

我们更关心的是问题空间的整体概貌,而非具体操作。例如,上面提到的简单问题空间可以代表任何确定性的单输入单输出操作。

这可能是 $(a^2 + 7a) * (a^3 - 4)$,也可能是光线行进算法中投射一条光线。

它本身也不在意连续的线性操作。为了衡量“复杂度”,我们可以利用边的权重。

这些一样

咱们来搞点更有趣的东西吧。

这代表什么计算我不知道,不过这其实无关紧要。

在这里,我们添加了颜色为了清晰。红色的点是初始条件,蓝色的点是可能的解决方案。计算的具体过程并不是那么重要,重要的是路径的成本和分支的次数。这是一次直观的尝试,而不是精确的科学。

好,咱们直接进入正题吧。

你可能想知道这与CPU、GPU等有什么关系。我的观点是每种计算单元都有特别适合处理特定“形状”的问题空间™(ProblemSpaces™)的特点。简单来说:

  • CPU(中央处理器) — 适合处理低分支、高成本问题的空间。
  • GPU(图形处理器) — 适合处理多独立输入的问题空间。
  • QPU(量子处理器) — 在处理单一输入、高分支问题时表现出色。

每个计算单元的理想ProblemSpaces™(问题空间)

即使是简单的程序,也难以完全用这种形式来表示。如果有大部分是线性操作并带少量分支的话,CPU在这里表现出色。对于许多独立的输入,每个输入有一个一对一的输出的情况,GPU 在这方面则更为出色。对于一个输入并涉及大量分支操作的情况,QPUs 占据优势。对于许多相互关联的输入最终得到一个输出的情况,现有的芯片都不太适合,这时使用 CPU 作为“默认”选项则更为合适。

最后,没有任何东西阻止你将计算分割成最适合不同计算单元的片段。例如,GPU可以处理高度并行化的计算,并将结果传递给CPU进行最终的计算。这种混合方法在现代计算中非常常见。

其他的计算单元呢?好吧,APU本质上是CPU和GPU电路的结合,而TPU本质上就是Google品牌的GPU(好吧,它更复杂一些,但矩阵乘法就是矩阵乘法,哥们儿)。我觉得值得作为类别讨论的通用计算种类就是上面说的三种。市场上其他的ASIC芯片也会表现出某种程度的CPU和GPU特性——希望它们将来也能借鉴QPU的理念。

要与真实硬件连接

迄今为止,我们故意保持了一些模糊,但让我们看看市场上高端芯片的一些具体规格,让我们的说法更加确定。

英特尔酷睿14900K处理器

  • 6 GHz(每秒60亿次线程操作)
  • 核心总数:24

将单核频率视为你在图中导航的“频率”,而总核心数则是你可以同时处理的初始输入的数量。在这种情况下,你可以同时处理多达24个初始输入(红色节点),并以每秒6亿“成本”的速度推进每个节点。这使得CPU非常适合处理低分支、高成本的问题域。

NVIDIA的GeForce RTX 3090 Ti 显卡,这是 NVIDIA 最新的高端显卡型号之一。

  • 1,560 MHz 基础时钟(1,560,000,000 每秒线程操作次数)
  • 总核心数:10752,

使用同样的比喻,GPU 在多输入场景中表现出色。通过以较低的整体速度并行运行的 10,752 个核心,GPU 可以同时处理大量初始输入。

* 它可能看起来GPU在纯粹的计算能力上完全超越了CPU(6 GHz × 24 对比 1.5 GHz × 10,752),但数学运算并不那么简单。深入探讨这些细节会偏离本文的主要观点,但 网上有很多相关资源 _详细解释了其中的区别。*

Willow QPU

这里可能就是量子物理学家会对过于简化的描述发出一声惊叹的地方了,但我们不妨用纠错频率来代替每秒有效计算次数。尽管量子比特(qubits)这个量子计算中的关键指标,不太符合我们之前提到的核心到输入的类比(core-to-input analogy),我们就把它当作一个单独的概念来讨论。

  • 909,000 基础时钟“”
  • 总量子位数:105

量子处理单元(QPUs)比CPU或GPU要慢得多(再次简化到连物理学家都会皱眉头的程度),但它们提供了一种独特的超能力:拥有更多的量子位数。这使它们能够同时追踪许多分支路径。例如,考虑解决一个问题,该问题需要探索所有可能的解决方案(蓝色节点)。一个CPU会执行一条路径到完成,然后回溯到最后一个分支点,并重复这一过程——对ProblemSpace进行完整的DFS遍历。它以6 GHz的频率遍历图,但总是每次只跟踪一条路径。

另一方面,量子处理单元 (QPU) 每秒能执行909,000次操作,前提是它不超过105个分支层级。QPU能够同时处理2¹⁰⁵个分支。在高度分支化的ProblemSpaces™中,这可能意味着计算时间从10 septillion年缩短到仅仅5分钟,正如在Willow中所展示的那样。

尾结尾的感想

虽然这篇文章绝对算不上是一篇科学论文(在任何方面),但我希望它能给你一个基础的直觉,CPU、GPU和QPU本质上是被设计来做什么——以及它们擅长的计算类型是如何被思考的。

一个实用心得是,如果你能并行处理问题,建议你使用GPU。如果你已经知道这一点,但对它的含义并不完全确定,我希望这篇文章能为你提供更清晰的见解。说到量子处理器(QPU),我希望这能让你和我一样兴奋地看待量子计算。我们能够在不用逐一计算的情况下探索并行处理,这真是太神奇了。

就像最初为图形设计的GPU现在对AI变得不可或缺一样,我对QPUs未来可能帮助我们解决哪些我们目前根本想象不到的问题感到好奇。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消