
AI/ 机器学习浪潮下,NPU 设计迎来爆发式增长,其适配不同场景的精准设计与权衡成为行业焦点。
人工智能 / 机器学习正推动神经网络处理单元(NPU)的设计活动快速增长,其应用覆盖从数据中心到个人电脑、智能手机等各类边缘设备。
人工智能知识产权产品营销总监 Jason Lawley、Expedera 公司首席科学家兼联合创始人 Sharad Chole、Quadric 公司首席营销官 Steve Roddy、Rambus 公司研究员兼杰出发明家 Steven Woo、西门子 EDA 高级综合部门项目总监 Russell Klein,以及 Synopsys 公司首席产品经理 Gordon Cooper 围绕 NPU 展开讨论。
在功耗、性能与面积(PPA)受限的设备中,为何需要根据日益复杂的人工智能网络来调整 NPU 的规模?
Sharad Chole:与片上系统(SoC)相比,神经网络处理器(NPU)的纯运算量级要高出数个数量级,这是核心差异点。同时,NPU 的理论运算总量也处于更高量级。随着扩散模型、基于令牌的架构等更精细架构的落地,NPU 所需访问的内存容量持续增加。这些内存既可能是片外内存,也可能是片上内存 —— 而片上内存的容量至少是其他类型应用程序的 10 倍。面对这些系统级限制,如何让 NPU 以应用所需的精度稳定运行,已成为一项关键任务。
Steven Woo:NPU 的一大特点是高度并行性,但并行度的合理阈值需要精准把控。这一参数直接影响可运行的模型类型,以及模型的响应速度,且在不同市场场景中答案各不相同。数据中心是 NPU 的高端应用场景,但要实现人工智能的全面普及,必须在边缘端与终端完成大量计算任务。这些场景面临差异化的环境限制,因此数据的高效迁移至关重要。由于各场景的限制条件存在差异,适配的内存解决方案也呈现出多样化特征。另一个值得关注的现象是,尽管业界普遍希望配置尽可能多的静态随机存取存储器(SRAM),但其扩展性并未达到预期,这进一步加大了下一层内存架构 —— 动态随机存取存储器(DRAM)的压力。而 NPU 的性能在很大程度上依赖内存表现,因此内存容量的规划不仅要匹配处理器的功耗与性能需求,更要保障处理器的数据输入与输出效率。
Russell Klein:在高级综合领域,我们的核心工作是借助抽象综合技术,为算法打造定制化的硬件实现方案。而这一切的关键价值,都围绕能耗展开—— 完成特定计算任务需要消耗多少能量?或者说,需要以多快的速度完成计算?这两者之间通常需要权衡,能耗的合理调配至关重要。如果要设计一款通用型 NPU,就必须支持 32 位浮点数运算,以及相应的量化乘法器。但通过高级综合技术进行定制化开发,则能实现更灵活的优化,例如将乘法器的规模精准匹配实际需求。无需为预留余量而过度放大或缩小乘法器尺寸,直接根据应用场景确定其规格即可。由于运算器的面积与功耗和操作数大小的平方成正比,缩小运算器规模能够带来二次方级别的优化效果。基于此,定制化方案相比传统的现成 NPU,能够实现更高的运行速度与能效。这并非意味着高级综合技术不能用于开发传统的张量处理单元(TPU),只是多数客户更倾向于用它开发定制化产品 —— 这类产品的加速对象并非通用神经网络,而是自身业务所依赖的特定神经网络。
Gordon Cooper:在规划 NPU 的合理配置时,必须考虑到其他可承载人工智能工作负载的设备,GPU 就是其中之一。既然如此,为何不直接用 GPU 完成相关计算?答案在于,NPU 的设计必须在能效与面积效率上,相比 GPU 实现一个数量级的提升。此外,还需要明确设计方向:是打造一款能适配所有人工智能工作负载的通用型 NPU,还是针对特定场景开发定制化 NPU?这其中显然涉及一系列配置权衡。正如 Steven 所说,若内存容量充足,且明确负载类型是大型语言模型还是小型视觉应用,就能更精准地做出取舍。但 NPU 的核心生存逻辑在于,必须比 GPU 更节能、更节省芯片面积,这是设计的根本出发点。同时,NPU 本质上仍是一款处理器,可编程性是其不可或缺的特性。
Steve Roddy:正如各位嘉宾所提到的,片上系统(SoC)中的人工智能加速引擎,通常是芯片中计算密度最高、内存带宽占用最大的子系统。因此,在完整的系统环境中对 NPU 进行测试至关重要 —— 这需要通过模拟真实代码的运行,加载真实工作负载,从而测量预期的数据交换活动与内存流量。但芯片架构师同样意识到,当前可用的基准测试网络,很难满足 24 至 36 个月后芯片量产时的用户需求。因此,张量计算优化架构的可编程性尤为关键,它不仅能支撑基于当前工作负载的合理配置,更能确保芯片具备应对未来人工智能工作负载突变的能力。
Jason Lawley:NPU 的合理配置至关重要,因为不同产品领域 —— 无论是低功耗音频处理、传感器融合、视觉识别,还是高端生成式人工智能应用 —— 对计算能力、内存容量、功耗与面积的需求都存在显著差异。若加速器的规模与需求不匹配,将直接损害设备效率与用户体验。实际上,只有实现乘加运算(MAC)吞吐量与内存占用的精准匹配,才能在不突破 PPA 限制的前提下,满足延迟与精度目标。对于知识产权(IP)提供商而言,在 IP 生成阶段提供可灵活调整的参数,是核心竞争力之一。
接下来我们探讨权衡取舍的问题。架构师应如何分析这些取舍因素,并以此为基础开展设计工作?
Gordon Cooper:再次强调,NPU 属于处理器的范畴,这意味着它必须具备可编程性。有人可能会认为," 在卷积神经网络(CNN)时代,只要部署足够多的乘加运算单元(MAC)就能解决所有问题 "。但对于 NPU 而言,核心痛点不在于乘加运算,而在于数据的高效获取。随之而来的挑战是可编程性的设计。GPU 在这方面做出了一定取舍,换取了更简便的编程体验。而 NPU 面临的情况是,人工智能模型的迭代速度极快,这就要求其设计必须具备足够的灵活性,软件层面的优化因此成为关键。
Russell Klein:硬件设计需要与神经网络本身的设计紧密结合。这意味着可以在多个维度进行权衡,例如:是否增加某一层的通道数,同时减少网络层数?或者反其道而行之,增加层数?是否通过提升乘法器的位宽,来减少通道数量?由此可见,设计人员可以在数据量、操作数大小与网络层数之间进行灵活取舍,这些选择都会直接影响硬件的运行效率,以及加速器的数据处理方式。因此,这不仅是硬件实现层面的问题,更是系统级实现的核心课题。此外,计算能力与通信能力的平衡同样重要。既不能配置过多乘法器,导致数据供应不足;也不能过度扩大数据管道或缓存容量,造成内存资源浪费。本质上,这是在计算能力与通信能力之间寻找最佳平衡点。
Steven Woo:为了进一步阐释 Russ 提出的观点,我们需要从两个维度考量 NPU 设计的限制因素。第一,必须明确应用场景与运行环境,这将决定设备的尺寸、功耗以及散热方案等关键参数。第二,需要兼顾算法与应用层面的需求。当前的行业难点在于技术迭代速度极快,几乎每 20 分钟就有一篇新论文发表,提出全新的优化方案。在这样的背景下,如何在满足现有应用需求的同时,为未来技术升级预留足够的灵活性,是所有设计人员必须思考的问题。资源的平衡分配至关重要,这也是业界广泛采用算术强度曲线(又称 " 屋顶线模型 ")的原因。通过这一模型,设计人员可以判断特定神经网络应用在某一架构下的性能表现,分析其性能瓶颈是源于计算能力还是带宽限制,并确定核心影响因素。在此基础上调整架构设计,优化架构性能,就像沿着屋顶线规划路径一样,确保目标应用场景能够实现最优表现。
Sharad Chole:我想从一名拥有九年 NPU 架构设计经验的从业者视角分享观点。九年前,业界在设计 NPU 时,主要以运算内核为核心,针对单个算子进行极致优化。如今,技术已不再是核心瓶颈 —— 在面积预算允许的情况下,理论上可以部署任意数量的乘加运算单元(MAC),但功耗预算往往无法支撑这一方案。当前的核心问题,已经从优化单个内核,转变为优化整个神经网络。正如各位所说,这其中既涉及精度问题,也涉及带宽问题,系统中存在多重瓶颈。例如,运行时环境可能无法及时向 NPU 输送所需数据。因此,在应用程序优化层面,不能局限于单个内核的优化,而必须着眼于整体工作负载。当然,这并不意味着要锁定某一特定工作负载,或是仅支持单一程序运行,但必须基于具有代表性的工作负载来确定优化目标。原因在于,架构师只有获得完整的权衡数据,才能做出科学决策,而这些数据不能仅从内核层面获取,更需要覆盖整个网络在延迟、功耗与精度上的表现。我们通常所说的 PPA,是硬件层面的权衡指标。但对于应用程序而言,还需要增加一个 "A" —— 即网络精度(Accuracy),因此 PPAA 的考量标准至关重要。
Steve Roddy:我认同 Sharad 的观点,在选择人工智能加速解决方案的组件时,必须兼顾整体系统性能与完整的网络精度。需要明确的是,整个 NPU 是否具备可编程性与灵活性?还是仅有部分组件支持编程,从而严重限制可支持的网络与算子范围?嵌入式程序员能否基于成品芯片,自由选择不同的位精度、数字格式,以及所需的新型算子,实现逐层的精度权衡?还是只能使用有限的量化方案、位精度与算子集?一款能够让开发者在未来数年内自主完成各类参数权衡的 NPU 解决方案,将有助于延长芯片的生命周期,提升项目的经济效益。
这些工作负载是如何被捕捉、考量并呈现的?
Steve Roddy:客户在评估 NPU 时,通常会从开源的代表性基准测试集入手,寻找能够对所有竞争厂商进行性能对比的衡量标准。但多数经验丰富的客户都清楚,这类测试数据存在大量变量,例如:网络的量化方式、算子是否被替换、厂商是否引入稀疏性优化、检测器是否移除了某些类别等。如果不进行实际操作评估,就无法实现真正意义上的同类对比。一旦客户决定采用某一厂商的工具链开展实际测试,几乎都会切换到自有专有模型 —— 即 " 真实模型 " —— 进行分析。这给 NPU 厂商带来了挑战,因为客户的网络模型可能基于 PyTorch、ONNX、TensorFlow 等多种框架开发,除了图算子之外,还可能包含纯 Python 代码或 CUDA C++ 代码。因此,一款成功的 NPU 工具链,必须支持用户导入所有这些格式与语言编写的模型代码,并将其顺利移植到目标 NPU 上。
Sharad Chole:通常情况下,我们会基于开源模型开展初步测试。部分客户会拥有自研的定制模型,但在初期往往不愿对外分享。因此,我们的初始测试基准主要是开源模型,但这仅仅是模型定义层面的参考。实际上,真实应用是一个完整的模型流水线。以视觉语言模型(VLM)为例,其架构包含编码器、大语言模型(LLM)与解码器,所有组件必须协同工作才能输出最终结果,而端到端流水线的延迟是核心评估指标。不同模型的内存性能特征与精度要求各不相同,因此权衡取舍至关重要。为了实现这种灵活权衡,NPU 的构建模块必须具备高度可配置性。这也是 NPU 区别于数字信号处理器(DSP)、GPU 等其他架构的核心特征 —— NPU 的每个构建模块,都需要在内存与精度上支持灵活配置,例如可配置为 16 位精度,或适配不同的输入数据格式。同时,用于降低内存带宽的压缩方案,需要与量化机制深度结合。这意味着每个 NPU 模块都必须具备高度可配置性,而最终的配置方案,取决于整体工作负载的特性,而非单个算子的需求。
Steven Woo:还有一点需要补充。业界正在积极推动标准化基准测试套件的开发,MLPerf 就是其中的典型代表,被视为兼顾实用性与公平性的解决方案。一方面,它能够呈现更完整的应用场景;另一方面,它试图为不同架构的性能对比提供公平的衡量标准。当然,厂商仍可以通过调整精度等方式进行优化,但 MLPerf 的核心目标,是打造一款能够客观衡量不同架构性能的工具。
Gordon Cooper:我表示赞同。我认为 MLPerf 有时会滞后于市场需求 —— 部分客户需要面向未来的前瞻性模型,但从论文发表、技术落地到 MLPerf 将其纳入基准测试集,往往存在一定的时间差。尽管如此,MLPerf 仍是工作负载评估的良好起点。它将工作负载划分为边缘计算、微型人工智能、服务器等多个类别,与 NPU 的多元化应用场景高度匹配。


