半导体产业纵横 5小时前
如何优化NPU?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

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 的多元化应用场景高度匹配。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

人工智能 神经网络 数据中心 ai 机器学习
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论