


越来越多的人工智能(AI)处理器正围绕特定工作负载而非标准化基准进行设计,旨在优化性能和功率效率,同时通常保留足够的灵活性以适应未来的变化。
虽然矩阵乘法和软件优化的基础仍然适用,但仅靠这些已不再足够。设计需要解决特定的数据类型、数据可能在何时何地被处理、将面临何种约束,以及在设计进入制造和封装阶段时工作负载是否可能发生转变等问题。这在AI领域尤为重要,因为算法的不断变化会急剧缩短那些围绕当前工作负载设计得过于紧凑的芯片的生命周期。
“在开发处理器时,理解应用的真实性质及其将运行的工作负载至关重要,”Arm公司CPU技术副总裁兼院士Frederic Piry说。“虽然基准测试对于展示性能目标很有价值,并且可以从中学到很多,但真实世界的工作负载引入了基准测试本身无法捕捉的变量。处理器开发者需要知道应用程序将如何执行。工作负载的执行频率、竞争进程的存在以及内存等共享资源的负载都会影响性能。这些条件会改变内存延迟的暴露方式、预取器的调优方式以及缓存拓扑的设计方式。”
基准测试通常强调“完成时间”,但特定的工作负载可能有不同的衡量指标需要考虑。
“从系统层面思考工作负载很重要,”Piry说。“在移动设备中,后台运行的应用程序可能会影响进程的运行方式,要求设计者考虑分支预测和预取学习率。在云环境中,核心可能共享代码和内存映射,从而影响缓存替换策略。甚至软件栈也对结构大小和性能一致性有影响。处理器开发者还需要思考特性在真实工作负载中是如何被使用的。不同的应用程序可能会以不同的方式使用安全特性,这取决于它们如何与其他应用程序交互、编码的安全性以及所需的整体安全级别。所有这些不同的选择都揭示了不同的性能权衡,必须针对这些权衡进行设计和测试。”
以移动设备与数据中心的工作负载为例。“用于手机的移动处理器运行的工作负载与针对特定市场且高度优化的AI处理器截然不同,”Rambus的杰出发明家兼院士Steve Woo说。“架构师需要理解市场需求的差异,以及如何对不同特性进行优先级排序以满足市场需求。例如,移动处理器要求低功耗和功耗模式之间的快速切换,而用于最大型AI模型的数据中心AI处理器则需要最高的性能、最高的内存带宽和快速的连接性,以便将大型问题分解到多个处理器上。处理器架构师还必须理解目标工作负载的计算特性。是否存在带宽密集型、延迟敏感型或计算密集型阶段?它们之间如何相互作用?对于AI工作负载,这意味着要对大型语言模型(LLM)等AI模型进行性能分析,以理解计算、通信和内存访问模式、可用的并行性以及数据在系统中的移动方式。算法分析、代码重构以及模拟器、性能计数器和工作负载追踪等工具有助于量化这些行为,然后用于指导架构和系统设计,并且在AI这样快速演进的领域中,对于平衡灵活性、功耗和吞吐量尤其有帮助,因为这些领域的工作负载变化迅速。”
对工作负载有深入理解的公司可以优化自己的设计,因为他们清楚设备将如何被使用。这比通用解决方案提供了更显著的好处。
“整个设计过程都致力于满足那些更狭义和深入理解的需求,而不必为任何可能的输入都能工作,这本身就带来了优势,”现隶属于Synopsys的Ansys产品营销经理Marc Swinnen说。
然而,这说起来容易做起来难。“神经网络开发涉及的认知负荷相当高,特别是当你考虑为某个设备优化这些东西时,”Arm负责AI和开发者平台的院士Geraint North说。“开发者脑子里需要同时处理两件事。一件是他们模型的架构,他们关心的是模型的准确度、大小等方面。如今的机器学习开发者对此已经很了解。挑战在于当你开始转向设备端时,因为你还必须开始担心NPU(神经处理单元)是否真的能够运行我优化后的模型。这就是为什么我们如此专注于提升CPU的性能。CPU的优势在于它是通用计算单元。你几乎可以保证它能处理你扔给它的任何算子、任何数据类型。我们与Stability AI合作时看到一个有趣的现象:他们真正优化的网络部分,SME 2使其速度快了很多;而他们没有花时间优化的部分,SME 2使其速度更快。因此,即使是机器学习工程师没有花时间优化的部分——他们不优化是有充分理由的——也不是工作负载的重大部分,SME 2将这些部分加速了大约八到九倍。所以我们专注于CPU的原因是,它能让机器学习工程师继续专注于他们今天已经在担心的事情,而不必再为硬件加速器的细微差别而烦恼。”
理解数据类型
AI处理器开发者需要知道将要处理哪些数据类型,以及将要执行的算法的大致领域。
“要开发一个好的音频处理器,处理器中的数据路径需要能够原生处理预期的音频数据采样位精度,”Quadric首席营销官Steve Roddy说。“音频数据是8位(低保真度)还是12位采样?或者是非常高精度的,比如完整的Float32?所有的寄存器文件和硬件单元(如乘加单元)都需要理解这些数据类型,尤其是累加寄存器。该音频处理器需要有能够高效运行典型音频滤波和音频处理算法的原生指令。但该音频DSP的开发者不需要在杜比或DTS工作,也无需接触3D定位音频技术栈中数百万行的代码。”
对于SoC(系统级芯片)开发者来说也是如此。“我们的NPU很容易集成,”Cadence公司AI IP产品营销总监Jason Lawley说。“我们有一个AXI接口,它会处理已优化的架构规范。与之配套的软件负责将那些来自框架的工作负载映射进来。很多时候,客户在PyTorch或TensorFlow中进行开发。然后我们将该网络映射到NPU中,这样他们在开发SoC时就知道设计中有一个通用的CPU部分,还有一个加速器,即NPU。当他们得到通常是音频或视频帧的工作负载时,他们所要做的就是编译那个特定的工作负载。当进入加速部分时,他们调用一个简单的API代码,然后系统会说,‘哦,这是那一帧,让我把内置的指令发下去。’它进行加速,然后他们得到结果。很多走IP路径的客户都是这样做的。如果你不走IP路径,你仍然需要做所有这些事,但你可能不会那么关注引擎的可配置性,或者试图确保你已完全优化并以最佳方式点亮所有硬件。这也行,取决于他们的工作负载是否能被满足。”
同样,对于AI,需要考虑的关键因素是数据类型和通用用例。“一个仅限视觉的NPU,如果主要是一台INT8机器(8 x 8 MAC),可能会表现得相当不错,”Quadric的Roddy说。“想转而运行LLM?那可能需要4位权重来压缩巨大的模型,但需要16位激活值(甚至可能是float16)来保持准确性,因此4 x 16 MAC是基本构建模块。你想运行多少种类型的网络,其广度将决定一个仅支持30或40个图算子的固定功能NPU加速器是否足够,还是你需要一个能运行当今PyTorch中2300多个算子的处理器。所有这些最终都归结为数据类型和算子,但这并不要求在设计LLM时具备任何数据科学专业知识,也不要求任何终端市场专业知识来构建一个能在例如汽车IVI和ADAS系统中取得成功的NPU处理器。简而言之,你需要知道AI工作负载里有什么,而不是如何创建它们。”
不同类型的处理器之间,设计者需要了解的知识也存在差异。
“用于手机的电池供电移动处理器的设计者专注于功耗和快速的功耗状态转换,处理器在支持小内存容量的小尺寸环境中独立工作,”Rambus的Woo说。“相比之下,用于最大型工作负载训练和推理的数据中心AI处理器专注于性能和吞吐量,拥有更大的功率预算和先进的散热解决方案,并能访问更高的内存容量和带宽。专注于AI训练的GPU设计者会优先考虑这些数据密集型任务的并行性和内存带宽。同时,为推理优化的处理器通常资源要求较低,因为模型被量化以减少内存容量和带宽需求。定向处理流水线提高了在数据中心外使用的设备的效率。每种处理器类型都要求对工作负载结构、性能瓶颈和部署环境(无论是云规模、移动还是嵌入式)有量身定制的理解。”
表示工作负载
向NPU设计者表示工作负载的最佳方式是什么?Roddy说最简单的解决方案是提供一组代表性的基准模型。
“假设你想构建一台真正高效的LLM推理‘机器’来运行Llama和DeepSeek的模型,”Roddy解释道。“从已发布的公开模型开始。模型的结构——即图算子及其互连——都是公开的。专有的、通常保密的是训练好的模型权重——那数十亿的参数。分析参考模型,你很快就能看到:a) 数据类型(精度);b) 所需的计算——MAC、高斯方程、二次方程、简单平均,或控制流操作——以及,c) 这些操作中每一种的频率或强度,即哪些操作被执行数十亿次,而哪些只执行两次。唯一棘手的部分是准确描述你希望机器能够应对的未来变化。数据类型会变吗?常用的算子会变吗?请注意,PyTorch有超过2300个算子,其中大部分今天很少使用,但可能在未来的AI创新中突然变得至关重要。今天的已知工作负载,加上你需要的未来灵活性的范围,将完全描述需要解决的问题。”
与此同时,终端应用可能会提供明确的限制,或至少是边界条件,供处理器设计时考虑。“例如,在安全关键型应用中就是如此,其中需要部署看门狗或锁步等安全机制,以防止处理器陷入任何类型的死锁,”弗劳恩霍夫集成电路研究所(Fraunhofer IIS)自适应系统工程部设计方法主管Roland Jancke指出。“对于这种情况,有相应的标准和测试程序,以便设计可以根据这些标准进行认证。”
来自应用的其他要求,如能耗,则不那么容易量化。“对于手头的任务,一个全功能的水冷AI加速器可能是理想的,但对于轻量级无人机应用来说就太重了,”Jancke说。“总的来说,自主系统会为处理器设计提供功耗和重量的边界条件。另一方面,我们与业界交流的经验是,问题常常反过来问。‘特定算法的开发者需要多大程度上了解执行处理器的确切结构和属性?’当然,了解可用处理单元的细节可能会提高算法实现的效率。然而,这些架构细节在开发周期中可能会改变。考虑到这一点,我们看到一种日益增长的抽象化趋势。建立一个定义良好的接口,如API,为硬件和软件的相对独立开发提供了可能性。软件基于该API开发,而硬件则专注于尽可能高效地实现API的指令。即使不了解也未考虑确切的应用,这也可能对开发过程有利。”
所有这些技术考虑,正是为什么AI IP对一些AI处理器开发者来说是有意义的。“SoC开发者必须理解客户想要什么,”Cadence的Lawley说。“但很多人忽略的另一个关键部分是编译将在其SoC上运行的AI模型的软件。他们将不得不在解决方案的整个生命周期内开发和维护它,而随着AI变化如此之快,组建一个软件团队并找到合适的人才是昂贵的。你必须找到不仅是AI开发者的编译器专家。他们必须获取那个模型,编译它,然后优化它以在他们创建的特定硬件上运行。很多时候这对他们来说是困难的,除非他们有非常特定的、定制的工作负载,并且总是在上面运行相同的模型。例如,在嵌入式领域,设计用于特定机器人之类的SoC的团队可以说,‘我们知道我们将会有某种AI模型。’如果你回顾最初的NPU设计,很多更像是美其名曰的矩阵乘法引擎。关于NPU将要做什么的炒作很多。它们将解决世界饥饿问题并加速AI。所以我们已经进入了NPU的‘祛魅’阶段,但这是暂时的。我们正在进入第二代和第三代NPU。我们正处于第二代,并且我们已经学到了很多关于NPU架构需要是什么样子,才能使其对通用AI加速更有用。”
处理器专业化与支持不断演变的工作负载的现实之间的这种相互作用,对设计者来说是一个巨大的挑战。准确预测活动既是必要的,又是难以捉摸的。
“这说起来容易做起来难,”Ansys的Swinnen说,“在运行一个程序时,你如何捕捉例如苹果的Safari浏览器?这种活动与Firefox或Chrome有何不同?如果苹果想让其芯片对Safari更高效,你如何捕捉这一点?那是数百万行的软件代码。你无法轻易地将在芯片设计中使用的东西捕捉下来。”
这就是仿真(emulation)发挥作用的地方。“对于那些负责猜测或预测工作负载样子的验证工程师和RTL设计师来说,他们已经做得很好,但当仿真平台被创造出来时,它是革命性的,因为它消除了系统中的猜测,”现隶属于Synopsys的Ansys的Suhail Saif观察到。“你可以将你的系统以FPGA格式或类似形式,放到仿真器上,并在制造前运行真实的工作负载。而当涉及到真实的工作负载时,无论是在iPhone上运行Safari浏览器,还是在手机上播放YouTube视频、打电话,或在iPad上玩游戏等,这些都是芯片、系统或设备设计者希望其最终用户做的非常真实的工作负载场景。从仿真中得到的活动文件是无可否认的,因为它代表了100%真实的工作负载场景。如果你在通过该工作负载向量模拟你的设计时发现问题,那么你就可以毫无疑问地确定,这是你在进入制造前必须修复的问题,因为它暴露了来自真实工作负载的真实问题。在功耗估算、电压降分析和为信号网络设计供电网络时,我们一直依赖这些来自仿真的真实工作负载,它们具有最大的权重。”
结论
AI处理器需要在性能、功耗和足够的面积之间取得平衡,以帮助使设计面向未来。“没有人会因为在他们的SoC中增加一点AI而被解雇,”Lawley说。“无论你是从IP提供商那里获得一些东西,还是在你的SoC中增加一些矩阵乘法能力,现在都是时候这么做了,因为每个人将来都会回头看然后说,‘我真希望我的硬件里有更多的AI能力,’因为那才是难的部分。对于SoC来说,构建一个SoC需要两到五年的周期。我们两年前在哪里,从现在起两到三年后这些设备发布时我们又会在哪里?在AI能力和灵活的AI能力上投入面积将是重要的,即使是对于它所进入的机器人,即使你正在做这些非常特定的功能。模型变化很快。对于现在的一个模型,谁知道将来会不会有一个经过充分优化且更好的新模型。所以要确保你的SoC中有AI能力,然后尽量确保它尽可能灵活,并且它连接到可以以多种方式使用的系统中。”








