每个新处理器都声称是最快,最便宜或最省电的,但是如何衡量这些声明和支持信息呢?
芯片行业在提供信息指标方面比过去更加努力。20年前,测量处理器性能相对容易。它是指令执行速率,每条指令执行的有用工作以及从内存读取和写入信息的速率的组合。这是根据其消耗的功率和成本来权衡的,这当然没有那么重要。
当Dennard Scaling下降时,许多市场的时钟速度不再增加,MIPS评级停滞不前。在体系结构的其他位置、内存连接中以及通过添加更多处理器进行了改进。但是没有创建新的性能指标。
"在过去20年的大部分时间里,人们一直保持着令人毛骨悚然的沉默,"西门子EDA高级副总裁兼总经理Ravi Subramanian说。"这种沉默是由英特尔和微软创造的,它们控制着计算机架构和在其上运行的工作负载(应用程序)之间存在的契约。这推动了很大一部分计算,尤其是企业。我们现在有一些非常具体的计算类型,它们更特定于领域或利基,它们与传统的冯·诺依曼架构不同。每秒每兆瓦每秒数百万次操作已经趋于平缓,为了获得更高的计算效率,必须在工作负载所有者和计算机架构师之间建立新的合同。
在尝试测量处理器的质量时,考虑应用程序变得非常重要。该处理器执行特定任务的效果如何,在什么条件下执行?
GPU和DSP使该行业走上了特定领域计算的道路,但今天它正在上升到一个新的水平。"随着经典的摩尔定律放缓,创新已经转向特定领域的架构,"SynopsysPrimeTime产品营销经理James Chuang说。"这些新架构可以在相同的工艺技术上实现每瓦性能数量级的提高。它们为设计探索打开了一个巨大的未知空间,无论是在架构层面还是在物理设计层面。
有人试图定义模仿前一代的新指标。"人工智能应用需要处理器中的一些特定功能,最值得注意的是大量的乘法/累加运算,"AMD自适应和嵌入式计算集团人工智能、软件和解决方案产品营销总监Nick Ni说。"处理器定义了它们可以执行的每秒数万亿次操作(TOPS),并且这些评级一直在迅速增加(如图1所示)。但是,就每瓦性能或每美元性能而言,真正的性能是多少?
图1:AI TOPS评级的增长。资料来源:AMD/Xilinx
随着芯片尺寸达到光罩极限,即使在工艺调整的情况下,在芯片上包含额外的晶体管也变得更加昂贵和困难,因此性能提升只能来自架构变化或新的封装技术。
多个较小的处理器通常比单个较大的处理器更好。将多个芯片组合在一个包中还可以允许与内存和其他计算内核的连接进行架构改进。"您可能将多个处理单元连接在一个包中,以提供更好的性能,"Synopsys产品营销经理 Priyank Shukla 说。"这个软件包将具有多个芯片,将作为更大或更强大的计算基础架构工作。这个系统提供了一种摩尔定律的扩展,这个行业已经习惯了。我们正在达到单个骰子无法提供性能改进的极限。但现在,这些系统在 18 个月内将性能提高了 2 倍,这是我们所习惯的。
工作负载正在推动计算机体系结构的新需求。"这些超越了传统的冯·诺依曼架构,"西门子的Subramanian说。"许多新型工作负载需要分析,他们需要创建模型。AI和ML本质上已经成为推动模型开发的劳动力。如何基于训练数据进行建模,以便可以使用模型进行预测?这是一种非常新型的工作负载。这推动了一种关于计算机架构的全新观点。计算机体系结构如何与这些工作负载配合使用?您可以在传统的 x86 CPU 上实现神经网络或 DNN。但是,如果你看看每毫瓦,每兆赫兹可以获得多少数百万次操作,并考虑这些的字长,权重,深度,它们可以通过将工作负载与计算机架构匹配,以更节能的方式更好地交付。
工作负荷和性能指标因位置而异。"超大规模企业提出了不同的指标来衡量不同类型的计算能力,"Synopsys的Shukla说。"最初,他们会谈论每秒Petaflops,即他们可以执行浮点运算的速率。但随着工作负载变得越来越复杂,他们正在定义新的指标来同时评估硬件和软件。这不仅仅是原始硬件。这是两者的结合。我们看到他们专注于一个名为PUE的指标,即电力使用效率。他们一直在努力减少维护该数据中心所需的电力。
丢失的是比较任何两个处理器的方法,除非在最佳条件下运行特定应用程序。即便如此,也存在问题。处理器及其使用系统能否长时间保持其性能?还是因为高温而节流?当多个应用程序同时在处理器上运行,导致不同的内存访问模式时,该怎么办?数据中心之外的处理器最重要的功能是其性能,还是电池寿命和功耗,或者两者之间的某种平衡?
"如果你退后一步,从非常高的层次来看这个问题,它仍然是关于以最低的功耗实现最大的计算能力,"瑞萨电子物联网和基础设施业务部执行副总裁兼总经理SaileshChittipeddi说。"因此,您可以考虑需要哪种计算功能,以及它是否针对工作负载进行了优化。但最终的因素是,它仍然必须处于最低的功耗。然后问题就变成了,'你是把连接放在船上,还是把它放在外面。或者,在优化功耗方面,您如何做到这一点。这是必须在系统层面解决的问题。
衡量这一点是很困难的。基准测试结果不仅仅是硬件的反映,而是相关的软件和编译器,它们比过去复杂得多。这意味着特定任务的性能可能会随时间而变化,而基础硬件不会发生任何变化。
架构方面的考虑不会止步于封装的引脚。"考虑在先进的智能手机上拍照,"Shukla说。"在捕获图像的CMOS传感器中正在执行AI推理。其次,手机有四个核心用于额外的AI处理。第三级发生在数据中心边缘。超大规模分析器在距离数据捕获的不同距离上推出了不同级别的推理。最后,您将拥有真正的大数据中心。AI推理发生四个级别,当我们考虑功率时,我们应该计算所有这些。它从物联网开始,你手中的手机,一直到最终的数据中心。
随着如此多的初创公司创建新处理器,许多公司可能会因为软件堆栈的质量而不是硬件本身而成功或失败。雪上加霜的是,硬件的设计必须提前知道它可能正在运行的应用程序。在这些情况下,甚至没有什么可以对处理器进行基准测试。
基准测试旨在提供一个公平的竞争环境,以便可以直接比较两件事,但它们仍然容易受到操纵。
当一个特定的应用变得足够重要时,市场需要基准,以便对它们进行评级。"不同类型的AI训练都有基准,"Shukla说。"ResNet是图像识别的基准,但这是性能基准,而不是功耗基准。超大规模企业将根据硬件和软件展示其计算效率。有些人甚至构建了定制硬件,一个加速器,可以比普通的GPU或基于普通FPGA的实现更好地执行任务。TensorFlow是与Google TPU相结合的一个例子。他们基于此对AI性能进行基准测试,但到目前为止,功率还不是等式的一部分。主要是性能。
忽视权力是一种操纵形式。"2012年的旗舰手机的峰值时钟频率为1.4GHz,"Arm技术副总裁兼研究员Peter Greenhalgh说。"与当今达到3GHz的旗舰手机形成鲜明对比。对于桌面 CPU,情况更加微妙。虽然Turbo的频率仅比20年前高一点,但CPU能够在更高的频率下停留更长时间。
但是,并非所有基准测试的规模或运行时复杂性都达到了这一点。"随着电力消耗的升高,温度会升高,"Ansys的PowerArtist产品管理主管Preeti Gupta说。"一旦它超过某个阈值,那么你必须降低性能(如图2所示)。电源、散热和性能紧密地联系在一起。不考虑其电源效率的设计将不得不付出运行较慢的代价。在开发过程中,您必须采用实际的用例,运行数十亿个循环,并分析它们的热效应。查看热图后,您可能需要移动部分逻辑以分配热量。至少,您需要将传感器放在不同的位置,以便知道何时降低性能。
图 2:性能限制会影响所有处理器
随着时间的推移,架构会针对特定的基准进行优化。"基准测试不断发展并反映现实世界的使用情况,在系统软件级别或硅测试阶段使用完善的方法创建和部署可以相对容易,"Synopsys的Chuang说。"然而,分析总是在事后进行。芯片设计中更大的挑战是如何针对这些基准进行优化。在硅设计阶段,常见的功率基准通常仅由统计切换曲线(SAIF)或非常短的样本窗口(实际活动(FSDB)的1至2纳秒)表示。更大的趋势不是"衡量什么",而是"在哪里衡量"。我们看到客户在整个流程中推动端到端功耗分析,以准确推动优化,这需要从仿真、仿真、优化和签核中获得一致的功耗分析骨干。
基准测试可以识别应用程序与运行它的硬件体系结构之间何时存在根本性的不匹配。"当您在某些架构上运行逼真的工作负载时,可能会出现主要的暗芯片,"AMD/Xilinx 的 Ni 说道。"问题实际上在于数据移动。你正在使引擎挨饿,这导致计算效率低下。
即使这样也不能说明全部情况。"越来越多的标准基准是一群人同意的,"Ni补充道。"这些是人们认为最先进的模型。但是,它们在运行您可能关心的模型方面的效率如何?绝对性能是多少,或者您的每瓦性能或每美元性能是多少?这就是决定机柜实际运营支出的原因,尤其是在数据中心。最佳性能或电源效率以及成本效益通常是两个最大的关注点。
其他人也同意。"从我们的角度来看,有两个指标的重要性与日俱增,"Fraunhofer IIS自适应系统工程部高级系统集成组组长兼高效电子部门负责人Andy Heinig说。"其中之一是功耗或每瓦特的运行。随着能源成本的增加,我们预计这将变得越来越重要。第二个不断增长的指标是由芯片短缺造成的。我们希望销售设备数量最少但性能要求最高的产品。这意味着需要越来越灵活的架构。我们需要一个性能指标来描述解决方案在不同应用程序更改方面的灵活性。
芯片设计的一个关键挑战是,你不知道未来的工作负载会是什么。"如果您不知道未来的工作负载,那么您如何实际设计与这些应用程序完美匹配的架构?"Subramanian问道。"这就是我们看到计算机架构真正出现的地方,从了解工作负载,分析和理解最佳类型的数据流,控制流和内存访问开始,这将大大降低功耗并提高计算的电源效率。这实际上取决于您花费了多少精力来进行有用的计算,以及您花费了多少精力来移动数据?对于应用程序类型,整体配置文件是什么样的?