中文 英语

什么是xPU?

几乎字母表中的每个字母都被用来描述处理器架构,但实际上它们看起来都非常相似。

受欢迎程度

几乎每天都有关于新的处理器架构的公告,它被冠以三个字母的首字母缩写——TPU, IPU, NPU。但真正的区别是什么呢?真的有那么多独特的处理器架构吗,还是另有原因?

2018年,John L. Hennessy和David A. Patterson发表了题为“计算机架构的新黄金时代“他们专注于CPU和它的进化方式,但这只是整个等式的一小部分。“从CPU的意义上讲,这些东西中的大多数都不是真正的处理器,”微软的研究员兼系统架构师迈克尔·弗兰克(Michael Frank)说Arteris IP.“它们更像是一个GPU,一个特殊工作负载的加速器,而且它们内部有相当多的多样性。

一个的本质处理器可以归结为三件事。“在一天结束的时候,它真的回到了指令集体系结构的硅营销总监曼纽尔·乌姆(Manuel Uhm)说赛灵思公司.“这决定了你要做什么。然后是I/O和内存,它们支持ISA和它要完成的任务。这将是一个非常有趣的时代,因为我们将看到比过去二三十多年看到的更多的创新和变化。”

许多新架构都不是单处理器。“我们看到的是不同类型的处理器或可编程引擎的组合,它们存在于同一个SoC或同一个系统中,”at技术和战略营销集团总监Pierre-Xavier Thomas说节奏.“可以将软件任务分派到不同的硬件或灵活的可编程引擎。所有处理器可能共享一个公共API,但执行域将有所不同。这就是你会看到不同类型的处理具有不同类型的特征的地方。”

事实上,命名在很大程度上是为了营销。“关键是,人们使用这些名字和首字母缩略词有两个不同的目的,”公司首席执行官西蒙•戴维曼(Simon Davidmann)说治之软件.一个是解释处理器的架构,比如SIMD(单指令多数据)。另一个定义它正在寻址的应用程序段。因此,它既可以定义处理器架构,也可以定义一个像张量处理单元(Tensor Processing Unit, TPU)这样的品牌名称。他们正在为他们的异构或同质架构命名,这不是一个单一的处理器。”

一点历史
40年前,事情要简单得多。有一个中央处理器(CPU),虽然它有很多变体,但它们基本上都是冯诺伊曼结构图灵完备处理器。每种语言都有不同的指令集,这使得它们在某些任务中更有效,并且有很多关于复杂指令集(CISC)与精简指令集(RISC)相对优点的讨论。

的出现RISC-V给ISA带来了很多关注。Xilinx的Uhm说:“人们想要了解ISA,因为ISA定义了处理器对特定任务的优化程度。“他们可以查看ISA并开始计算周期。如果一个ISA有一个本地指令,以1千兆赫的速度运行,我可以将其与另一个处理器ISA进行比较,在另一个处理器ISA中,相同的功能可能需要两条指令,但处理器以1.5千兆赫的速度运行。哪个能让我走得更远?他们为重要的功能进行计算。”

cpu以多种方式打包,有时将IO或内存放在同一个包中,它们被称为微控制器单元(MCU)。

当调制解调器开始流行时,数字信号处理器(DSP)出现了,他们是不同的,因为他们使用哈佛架构。它将指令总线和数据总线分开。其中一些还实现了SIMD体系结构,使数据处理更加有效。

指令和数据的分离是为了提高吞吐量,尽管它限制了一些可以进行的边缘编程,比如自编写程序。“通常,边界条件并不是计算出来的,”Uhm说。“越来越多的是I/O或内存。整个行业从提高计算能力转向确保有足够的数据来保持计算能力和性能。”

当单个处理器不再变得更快时,多个处理器被连接在一起,通常共享内存,并保持每个处理器和整个处理器集群保持图灵完整的概念。在哪个核上执行程序并不重要。结果是一样的。

下一个主要的发展是图形处理单元(GPU),这打破了原有模式,因为每个处理元素或管道都有自己的内存,无法在处理器外部寻址。由于内存是有限的,这意味着它不能执行任何任意的处理任务,只能执行那些可以装入所提供的内存空间的任务。

“对于某些类型的功能,gpu是非常强大的处理器,但它们的管道非常长,”Uhm指出。“这些管道可以让GPU单元处理数据,但在某些时候,如果你必须刷新管道,那就是一个巨大的打击。系统中存在大量的延迟和不确定性。”

虽然已经定义了许多其他加速器,但GPU——以及后来的通用GPU (GPGPU)——定义了一种编程范式和软件堆栈,使它们比过去的加速器更容易接近。Imperas的大卫曼说:“多年来,某些工作变得专业化了。“有一个用于顺序程序的中央处理器。有图形处理器,它专注于操作屏幕上的数据,并将我们引入一个高度并行的世界。任务是使用许多小的处理元素来执行的。现在有了机器学习任务。”

还有哪些构造规则可以被打破来解释所有的新架构呢?在过去,处理器阵列通常通过内存或固定的网络拓扑结构(如网格或环形)连接。最近出现的是芯片上网络(NoC)的结合,使分布式、异构处理器能够以更灵活的方式进行通信。在未来,它们还可以实现不使用内存的通信。

Arteris的Frank说:“在这一点上,noc只携带数据。“未来,NoC可以扩展到加速器之间的通信超越数据的其他领域。它可以发送命令,可以发送通知等等。加速器阵列或加速器海洋的通信需求可能与cpu或标准SoC的通信需求不同。但是芯片上的网络并不会将你局限于一个子集。您可以通过支持加速器的特殊通信需求来优化和提高性能。”

实现架构
处理器的区别之一是针对特定的操作环境进行优化。例如,软件可以在云中运行,但你也可以在一个微小的物联网设备上执行相同的软件。实现架构将非常不同,并在性能、功率、成本或极端条件下的操作能力方面实现不同的操作点。

Cadence的Thomas表示:“一些应用程序是针对云计算的,现在我们正在让它们更接近边缘。“这可能是因为延迟要求,或者是能量或功耗,这将需要不同类型的架构。您可能希望拥有完全相同的软件堆栈,以便能够在两个位置运行。云需要提供灵活性,因为它将接收不同类型的应用程序,并且必须能够聚合大量用户。这要求服务器上的硬件具有特定于应用程序的能力,但一种尺寸并不能适用于所有情况。”

毫升添加自己的需求。托马斯补充说:“在使用神经网络和机器学习构建智能系统时,你需要使用软件框架和公共软件堆栈对新的网络进行编程,并将其映射到硬件上。”然后,您可以将软件应用程序调整到正确的硬件PPA的角度来看。这推动了对不同类型的处理和处理器的需求,以便能够在硬件层满足这些需求。”

这些需求由应用程序定义。弗兰克说:“有一家公司为图形运算开发了一种处理器。“它们优化和加速了如何跟随图形,并执行诸如图形重新排序等操作。还有一些方法主要是加速机器学习的蛮力部分,也就是矩阵-矩阵乘法。内存访问对于每种架构来说都是一个特殊的问题,因为在构建加速器时,最重要的目标是让它保持忙碌。你必须将尽可能多的数据通过alu来消耗和产生。”

许多这些应用程序都有一些共同之处。大卫曼说:“它们都有一些本地内存,它们有一个芯片上的网络来通信周围的事情,每个执行软件算法的处理器都在处理一小块数据。”“这些作业是由运行在更传统CPU上的操作系统安排的。”

对硬件设计人员来说,棘手的一点是预测它将被要求执行哪些任务。托马斯说:“尽管你将在某些层面上进行类似的操作,但人们正在关注不同层面上的差异。”“为了能够处理神经网络,需要几种类型的处理能力。这意味着你需要能够以某种方式处理神经网络的一部分,然后可能需要另一种类型的操作来处理另一层。数据的移动和数据量也在一层又一层地变化。”

这种差异可以超越数据移动的范畴。“对于基因组测序,你需要做一些特定的处理,”弗兰克说。“但你不能用一种加速器来加速所有东西。您必须为管道构建一套完整的不同加速器。cpu成为监督执行流的守护者。它建立事物,进行DMA,在两者之间提供决策过程。有一个完整的架构任务来理解和分析算法,并定义如何优化它们的处理。”

这个过程的一部分需要划分。Uhm说:“没有一种处理器类型是针对每一种处理器任务进行优化的——fpga、cpu、gpu、dsp都不是。”“我们创造了一系列包含所有这些功能的设备,但客户方面的难点在于,他们必须提供智能,以确定整个系统的哪些部分将针对处理器,或可编程逻辑,或AI引擎。每个人都想要自动魔法工具,一个可以立即决定把这个放在CPU上,把那个放在FPGA上,把那个放在GPU上的工具。这个工具现在还不存在。”

尽管如此,总会有一个CPU的角色。“需要cpu来执行程序的不规则部分,”Frank说。“CPU的一般可编程性有其优势。如果您有专门的数据结构或数学操作,它就不能很好地工作。CPU是一个通用处理器,它没有针对任何东西进行优化。它什么都不擅长。”

改变抽象
在过去,硬件/软件边界是由ISA定义的,并且内存是连续可寻址的。当存在多个处理器时,它们通常是内存一致的。

“一致性是一种契约,”弗兰克说。“这是一份代理商之间的合同,上面写着,‘我向你承诺,我会一直向你提供最新的数据。“同龄人之间的一致性非常重要,而且不会消失。但你可以想象,在数据流引擎中,一致性不那么重要,因为你在传送边缘移动的数据,直接从一个加速器到另一个加速器。如果你划分数据集,一致性就会成为阻碍,因为这会花费额外的周期。你得去查资料。你必须提供更新信息。”

这需要不同的内存架构。“你必须考虑内存结构,因为你只有这么多紧密耦合的内存,”Uhm说。“你可以访问相邻的内存,但你很快就会用完相邻的内存来及时做到这一点。这一点必须在设计中得到理解。随着工具的成熟,工具将开始理解更多的内容。今天,它是由人类智能完成的,通过能够理解架构并应用它。”

还需要更高级别的抽象。“有一些框架可以将已知的网络映射或编译到目标硬件上,”Thomas说。“你有一组低级内核或api,将在软件堆栈中使用,然后最终由神经网络的映射器使用。在下面,您可能有不同类型的硬件,这取决于您想要实现什么,取决于您的产品细节。它实现了相同的功能,但没有相同的硬件,没有相同的PPA权衡。”

这给编译器带来了很大的压力。“主要的问题是未来如何编程加速器?弗兰克问。“你们是否实现了像第一代gpu那样串在一起的硬连线引擎?或者你建立了小型可编程引擎,它们有自己的指令集?现在你必须单独对这些东西进行编程,并将这些引擎连接起来,用数据流执行任务。一个处理器拥有总指令集的某个子集,另一个处理器拥有不同的子集,它们都将共享控制流的一些重叠部分。你可能有一些有稍微不同的加速能力。编译器,或者知道它的库,相应地映射。”

结论
处理器的架构没有改变。他们仍然坚持过去40年来一直存在的选择。改变的是芯片的构造方式。它们现在包含大量异构处理器,这些处理器具有针对应用程序任务子集优化的内存和通信。每个芯片都对处理器的功能和优化内容、所需的数据吞吐量以及通常会看到的数据流做出了不同的选择。

每个硬件供应商都想让自己的芯片与众不同,但通过品牌宣传要比谈论内部的技术细节容易得多。所以他们给它起了个名字,称它为第一个,最快的,最大的,并将它与特定类型的应用问题联系起来。这三个字母缩写已经成为应用程序任务名称,但它们并没有定义硬件架构。

相关的
新AI处理器架构面临的挑战
在数据中心获得一个人工智能席位正在吸引大量投资,但也存在巨大的逆风。
三代人的十个教训塑造了谷歌的TPUv4i
谷歌的TPUv4i进化
新的架构,更快的芯片
大规模的创新驱动性能的数量级改进。
利用人工智能改进医学图像处理
更快、更智能的成像为从4D建模到更高分辨率、更少噪音的一切打开了大门。



留下回复


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

Baidu