中文 英语

冯·诺依曼在挣扎

75年来的计算体系结构的支柱正在被更高效、更不通用的计算体系结构所取代。

受欢迎程度

在由机器学习主导的时代,冯内南建筑正在努力保持相关性。

世界已经从以控制为中心转变为以数据为中心,这推动了处理器架构的发展。风险投资正涌入特定领域的架构(DSA),但传统的处理器也在不断发展。对许多市场来说,它们继续提供有效的解决方案。

冯Neumann建筑对于通用计算,首先于1945年描述,并在千年转弯之前持续时间。John Von Neumann撰写了描述了一个架构,其中数据和程序都存储在计算机内存的同一地址空间中 - 尽管它实际上是J. Presper Eckert和John Mauchly的发明。

几个原因解释了建筑的成功。首先,它是完整的,这意味着给定足够的内存和足够的时间,它可以完成任何数学任务。今天我们对此不太考虑。但是回到了计算的早期,可以执行任何程序任务的单个机器的概念是一个突破。通过此测试依赖于它具有随机访问内存。

其次,它是可扩展的。摩尔定律提供了它背后的燃料。可以扩展内存,可以放大数据的宽度,其可以增加计算的速度增加。很少需要修改与它相关的架构或编程模型。

对von Neumann架构进行了小的更改,例如分离数据和程序总线的哈佛架构。这种改进的内存带宽并允许并行执行这些操作。这最初是在数字信号处理器中采用的,但后来在大多数计算机架构中使用。此时,有些人认为所有功能都会迁移到软件,这将意味着结束定制硬件设计。

一个时代的结束
可扩展性在2000年左右放缓。然后,丹尼德缩放2007年饲养了头部,功耗成为一个限制器。虽然该行业当时并未认识到它,但迄今为止是行业中最大的拐点。这是指令级并行性的结束。起初,似乎是解决方案是添加额外的处理器。这个策略设法延迟不可避免,但这只是临时修复。

“问题之一是,cpu真的什么都不擅长,”Michael Frank说,他是麻省理工学院的研究员和系统架构师动脉IP..“cpu擅长处理包含大量决策的单个线程。这就是为什么你有分支预测器,它们是多年来的研究主题。”

但在快速变化的时代,任何不期望意外的设计可能会受到严重限制。“冯·诺依曼架构往往非常灵活和可编程,这是一个关键优势,特别是在快速变化的机器学习世界,”马修·马蒂娜(Matthew Mattina)说手臂的机器学习研究实验室。“但是,这种灵活性在功率和峰值性能方面以成本计算。挑战是设计可编程CPU或加速器,使您维护“足够的”可编程性,同时实现更高的性能和更低的功率。大矢量长度是一个例子。您正在摊销CPU管道的标准获取/解码部分的功率成本,同时在单个操作中获得更多工作。“

图1:20世纪40年代首次描述的冯·诺依曼架构,直到21世纪初一直是计算的主流。数据和程序都存储在计算机内存的同一地址空间中。来源:半导体工程德赢娱乐网站【官方平台】

加速器提供了一个折中方案。“加速器服务于两个领域,”Arteris的弗兰克说。“一种是有大量数据在移动,而CPU不擅长处理这些数据。这里我们看到矢量扩展变得更广。还有很多非常具体的操作。如果你看看神经网络,你有非线性的阈值,你有巨大的矩阵乘法,用CPU做这些是没有效率的。因此,人们试图将工作负载转移到更接近记忆的地方,或者转移到专门的功能单元。”

为了使事情更加复杂,数据的性质已经改变了。更多的是时间。使用音频和视频首先看到数据的时间方面。但即使是几十年前,一台计算机也可以跟上相对缓慢的音频数据速率。视频呈现出更大的挑战,用于处理和记忆。

记忆瓶颈
内存访问在时间和精力方面是昂贵的。缓存通过利用数据局部性来解决这个问题。“大多数硅设计使用各种技术来降低功耗,”Anoop Saha说,他是市场开发经理西门子eda..“改善内存访问是最大的BANG-BUCK建筑创新之一,用于减少整体系统级功耗。这是因为外壳的DRAM接入消耗了比32位浮点乘法操作更多的功率差不多千倍。“

从那时起,为了使内存更接近处理器,人们开发了越来越复杂的缓存方案。但是,与存储在寄存器中的相同变量相比,访问缓存仍然消耗200倍的能量。

简而言之,记忆已成为限制器。“对于一些应用程序来说,内心埃德副总裁兼总经理Ravi Subramanian说:”对于一些申请,记忆带宽限制了增长。““专业处理器增长的主要原因之一,以及内存中(或near-memory)计算机架构,是直接解决传统冯Neumann架构的局限性。尤其如此大量的能量在处理器和内存之间的移动数据与实际计算上花费的能量之间的移动数据。“

AI / ML的快速出现是迫使内存架构的变化。“处理器可能是定制的,但您需要静态存储器公司物联网战略营销经理罗恩•洛曼表示synopsys..“对于AI应用程序,您希望尽可能靠近Macs执行和存储尽可能多的重量和系数。这就是吃掉功耗的东西。多端口记忆对于AI非常受欢迎。这意味着在进行数学时,您可以并行化读写。这可以减少一半的力量。“

Untether AI产品副总裁Bob Beachler给出了一些具体数据。“系数通常是静态的——那么为什么要移动这么多呢?”相反,使用内存计算,系数可以存储在处理元素旁边的内存数组中,极大地减少了移动距离。内存阵列可以调优以驱动更短的距离,这是大型/深度芯片缓存无法做到的。这降低了大约6倍的总功率,50%的功率在计算中,50%在数据的移动中。”

这种内存架构上的改变会带来很大的损失。“挑战在于,在过去,人们有一个很好的抽象模型来思考计算系统,”麻省理工学院(mit)的研究员、杰出发明家吴宇森(Steven Woo)表示兰姆斯.“他们从来没有真正考虑记忆。它是免费的,编程模型刚刚使得它在您确实对内存引用时,它刚刚发生。你永远不必明确你在做什么。当新的回忆进入方程时,你必须摆脱我们曾经让他们真正有用的摘要视图。“

然而,这种情况需要改变。“程序员必须更加注意内存层次结构是什么样子的,”Woo说。他说:“现在还处于早期阶段,这个行业还没有确定一种特定的模型,但是有一个普遍的认识,为了使它有用,你必须增加对它的了解。一些编程模型,如持久内存(PMEM),要求用户理解数据在哪里,并考虑如何移动数据,并确保数据在它需要的地方。”

在核心人工智能应用是乘法累积功能(Mac)或点产品操作。这需要两个数字,将它们乘以并将结果添加到累加器。这些数字从并存储到内存中。这些操作重复多次,并考虑到学习和推理所消耗的绝大多数时间和力量。

AI对内存的需求不同于gpu或cpu。西门子的Saha说:“重要的是优化算法以改善数据局部性,从而减少数据移动。”“这些选择取决于芯片设计要运行的特定工作负载。例如,图像处理加速器使用行缓冲(每次只对图像的一小部分样本起作用),而神经网络加速器使用双缓冲存储器(因为它们需要对图像进行多次操作)。”

例如,使用一个逐层处理的AI加速器,就有可能提前预测需要哪些内存内容。“当第N层被处理时,第N+1层的权重从DRAM中引入,在计算第N层的过程中,在后台,”Geoff Tate解释说Flex Logix.所以DRAM传输时间很少会影响计算,即使只有一个DRAM。当第N层计算完成后,第N+1层的权值将在几微秒内从缓存存储器移动到与mac直接相邻的存储器。当计算下一层时,每个MAC使用的权值从每个MAC簇直接相邻的SRAM中引入,因此权值的计算访问是非常低的功率和非常快的。”

特定于领域的体系结构通常伴随着新的语言和编程框架。Rambus ' Woo说:“这通常会创建新的内存层和缓存或移动数据的方法,以便更接近需要的位置。”“这增加了一个大多数行业都不习惯的层面。我们在学校里并没有真正学过这类东西,这也不是这个行业数十年的经验,所以它并没有根植于程序员之中。”

时间正在发生变化
但这可能还不够。世界正逐渐意识到任意使用大量能源的影响,以及我们对环境的最终破坏。整个科技行业能够而且必须做得更好。

学者一直在寻找人类的灵感,注意到脉冲网络更接近大脑工作的方式比大型矩阵操纵对储存权重的大型矩阵操纵,这是今天系统的核心。当一些重要的变化并且不需要完全新的图像或其他传感器数据时,脉冲发生火灾,每次相当于时钟火灾。早期工作表明,这些方法可以更高为20倍至50倍的功率效率。

混合信号解决方案是一个强大的候选者。“有些设计更接近密切信号设计,这些设计正直接在记忆中进行计算,”Dave Purrley说,产品管理总监节奏.“他们关注的是彻底消除数据移动。即使你读了很多的学术论文,如此多的研究曾经是如何减少计算和现在我们在一个阶段,我们在考虑减少数据移动或改善地区,这样你不需要如此大量的存储和那些非常昂贵的内存访问的能力。”

新的计算概念是重要的。“我们的想法是,这些东西可以在一个时间步长内对完全连接的神经网络层进行多重累加,”IBM研究部的RSM负责人杰弗里·伯尔(Geoffrey Burr)解释说。“如果不这样做,一系列处理器上就需要一百万个时钟,你可以在模拟领域利用数据所在位置的基础物理来做到这一点。”它在时间和能量方面有足够有趣的方面,它可能会发展到某个地方。”

模拟可能对今天使用的数字系统具有另一个显着的优势。当今汽车的对象检测系统通常无法处理意外。AI和IBM Q副总裁达里奥·吉尔(Dario Gil)表示,在2018年设计自动化会议的小组讨论中,“如果您已经看到了对抗网络的出现以及如何将噪声注入系统愚弄分类图像,或将其欺骗它如何检测到转录的语言,这会告诉您这些系统中固有的碎片。你可以从看起来像公共汽车的东西,并且在噪音注射后它说是斑马。你可以毒害神经网络,他们受到各种攻击的影响。“

数字失败,模拟退化。这是否适用于模拟神经网络,它们是否更值得信赖,仍有待观察。

结论
在我们所创造的每一个系统中总是会有一个控制元素。因此,冯·诺伊曼架构不会消失。它是最通用的计算机,这使得它不可或缺。与此同时,大量繁重的计算任务正在向非冯诺伊曼架构转移。加速器和自定义核心可以用更少的能量完成更好的工作。更优化的内存架构也提供了显著的好处。

不过,这只是设计上的一个权衡。对于那些不能为可能执行的每项功能都配备专用核心的设备来说,存在一些折中方案,它们的市场依然强劲。另一个问题是,与von Neumann体系结构相关的编程模型是如此根深蒂固,以至于要有足够的程序员为新的体系结构编写软件将需要很长时间。

相关的
建设推理芯片的挑战
随着AI领域继续前进,正在开发出不同的推理方法。并非所有人都会起作用。
将内存处理工作?
SIDESTEP VON NEUMANN架构可能是低功耗ML硬件的关键的变化。
PCIe 5.0钻头
新的PCI Express标准,为什么它对数据中心如此重要,它与该标准以前的版本相比如何,它将如何适应现有的和非von Neumann体系结构。
解决内存瓶颈
在系统周围移动大量数据不再是成功的路径。它太慢,消耗太多的力量。是时候翻转等式的时候了。



5点评论

GSIT 说:

您应该查看GSI技术,通过其APU(关联处理单元)架构来解决这个问题。这将是相似性搜索的关键产品,尤其是电子商务等应用程序

Dev Gupta博士 说:

看来你们记者已经厌倦了抨击摩尔定律,现在又找到了一个新的科学天才来抨击,普林斯顿的老数学家约翰尼·冯·诺依曼他开着一辆跑车!饶了他吧!!老冯诺依曼漠视模糊的架构图灵在IAS播种,普林斯顿大学期间,在1944年(6 mo年代才handwire在宾州大学ENIAC的CPU建造10000管和微小的磁性的核心记忆戒指!)提出他的简单的串行架构一个CPU绑定到一块内存获取和处理一组指令和数据,然后测试分支。这是唯一的办法抛物型微分方程需要设计一个内爆的炸弹(长崎)可以得到解决。自60年代末以来,人们一直在尝试并行计算(ILLIAC),但在预测数据和指令提取方面的进展并没有那么好。这只是因为我们把硬件做得如此便宜,并且通过ad . Packaging甚至去掉了cpu、dram和Cache内存之间的所谓内存墙,人们可以做多处理器,尽管并行计算的效率很低。所以停止攻击老JvN,除非你准备好做一个关于von Neumann边界条件的POP QUIZ !

Nerkn. 说:

我一直很喜欢模拟计算机,直到我上了第一堂模拟课。除了我的成绩,事实上在40多岁的时候他们就可以把图像转换成电视直播了。我们只能在本世纪头十年实现这个能力。也许ai/ml世界将会出现另一盏明灯。
我买了GSI模块,居住在我的抽屉里。在大承诺和大型资金面前看到,也小了消失。希望在那个领域更多的技术出现。

布莱恩•贝利 说:

我不确定我是否曾说过并行计算在某种程度上优于单个处理器。我所建议的是,处理器与内存的关系是需要改变的。单一的大内存空间在时间和精力上是低效的,缓存通常是一个糟糕的解决方案——特别是对于像AI这样的任务,访问模式是更可预测的。

Ruomu 说:

我会想象存储器中心计算的泛化,以类似于分布式系统,其中处理单元由一小组存储器单元通信并形成网络。硬件将限制处理器的数量和连接限制,软件将指定这些处理器如何共享存储单元并进行计算。

发表评论


(注意:此名称将公开显示)