如何平衡AI处理器设计中的工作负载

360影视 欧美动漫 2025-09-16 09:11 1

摘要:虽然矩阵乘法和软件优化的基本原理仍然适用,但仅凭这些已远远不够。设计需要解决特定的数据类型、数据可能的处理时间与地点、将面临的各类约束,以及在设计进入制造和封装阶段时,工作负载是否可能发生变化。这在AI领域尤其重要,因为算法的不断变化会严重缩短那些过于紧扣当前

(本文编译自Semiconductor Engineering)

越来越多的AI处理器在设计时围绕特定工作负载展开,而非标准化基准测试,旨在优化性能和能效,通常也会保留足够的灵活性以适应未来变化。

虽然矩阵乘法和软件优化的基本原理仍然适用,但仅凭这些已远远不够。设计需要解决特定的数据类型、数据可能的处理时间与地点、将面临的各类约束,以及在设计进入制造和封装阶段时,工作负载是否可能发生变化。这在AI领域尤其重要,因为算法的不断变化会严重缩短那些过于紧扣当前工作负载而设计的芯片的使用寿命。

“在开发处理器时,了解应用程序的真正性质及其将运行的工作负载至关重要,”Arm CPU技术副总裁兼研究员Frederic Piry表示,“虽然基准测试对于展示性能目标很有价值,也能从中收获良多,但现实世界的工作负载会引入一些基准测试本身无法捕捉的变量。处理器开发者需要了解应用程序的执行方式。工作负载的执行频率、竞争进程的存在,以及内存等共享资源的负载,都会影响性能。这些条件可能会改变内存延迟的呈现方式、预取器的调优方式,以及缓存拓扑的设计方式。”

基准测试通常强调完成时间,但具体工作负载可能需要考虑不同的指标。

Piry表示:“从系统层面考虑工作负载非常重要。在移动领域,后台运行的应用程序可能会影响进程的运行方式,这要求设计人员考虑分支预测和预取学习率。在云环境中,内核可能会共享代码和内存映射,从而影响缓存替换策略。即使是软件堆栈,也会对结构大小和性能一致性产生影响。处理器开发人员还需要考虑如何在实际工作负载中使用功能。不同的应用程序可能会以不同的方式使用安全功能,这取决于它们与其他应用程序的交互方式、代码的安全性以及所需的整体安全级别。所有这些不同的选择都带来不同的性能权衡,而这些都必须在设计中加以考虑,并进行相应的测试。”

以移动设备和数据中心的工作负载为例。“手机的移动处理器运行的工作负载,与针对特定市场且经过高度调优的AI处理器截然不同,”Rambus杰出发明家兼研究员Steve Woo表示,“架构师需要了解市场需求的差异,并了解如何优先考虑不同的特性以满足市场需求。处理器架构师还必须了解目标工作负载的计算特性。是否存在带宽受限、延迟敏感或计算密集型阶段?它们之间如何相互作用?对于AI工作负载,这意味着需要对大语言模型(LLM)等AI模型进行性能分析,以了解计算、通信和内存访问模式、可用的并行性以及数据在系统中的移动方式。算法分析、代码重构以及模拟器、性能计数器和工作负载跟踪等工具,有助于量化这些行为,进而为架构和系统设计提供依据,尤其在AI等快速发展的领域中,工作负载瞬息万变,尤其有助于平衡灵活性、功耗和吞吐量。”

对工作负载有深刻理解的公司,能够基于对设备使用方式的了解来优化自身设计。这相比通用解决方案具有显著优势。

然而,说起来容易做起来难。“神经网络开发涉及的认知负荷相当高,尤其是在针对某一设备进行优化时,”Arm人工智能和开发者平台研究员Geraint North表示,“开发者需要牢记两件事。一是模型的架构,他们会关注模型的准确性、规模等。如今,机器学习开发者对这些内容已非常了解。但挑战在于,当开始在设备上进行操作时,还必须考虑NPU是否真的能够运行优化过的模型。这就是我们如此专注提升CPU性能的原因。CPU的优势在于它是通用计算单元。几乎可以保证它能处理你交给它的任何运算符和数据类型。”

了解数据类型

AI处理器开发人员需要知道将要处理哪些数据类型,以及将要执行的算法类型的大致范围。

Quadric首席营销官Steve Roddy表示:“要开发出一款优秀的音频处理器,处理器中的数据路径需要原生支持预期的音频数据采样位精度。音频数据是8位(低保真)还是12位采样?还是会是像32位浮点这样的高精度数据?所有寄存器文件和硬件单元(例如乘法累加器)都需要理解这些数据类型,尤其是累加寄存器。该音频处理器需要具有能高效运行典型音频滤波和音频处理算法的原生指令。但该音频DSP的开发人员无需在杜比或DTS工作,也无需访问3D定位音频堆栈中数百万行的代码。”

对于SoC开发者来说也是如此。Cadence AI IP产品营销总监Jason Lawley表示:“我们的NPU易于集成。我们为其配备了AXI接口,可以处理已优化的架构规范。与之配套的软件负责将这些工作负载从框架进行映射。很多时候,客户使用PyTorch或TensorFlow进行开发。之后我们将该网络映射到NPU中,这样当他们开发SoC时,就知道设计中已包含通用CPU部分,也知道有NPU这个加速器。当他们获得工作负载(通常是音频或视频帧)时,他们只需编译该特定工作负载。到了需要加速的部分,他们调用一段简单的API代码,代码就会执行加速,然后他们就能得到结果。很多选择IP方案的客户都在这样做。如果不采用IP方案,你仍然需要做所有这些工作,但可能不会太关注引擎的可配置性,也不会去确保以最优方式充分利用所有硬件。这也没关系,这取决于他们的工作负载是否能够得到满足。

对于AI而言,需要考虑的关键因素同样是数据类型和一般用例。Quadric的Roddy表示:“纯视觉NPU主要使用INT8机器(8x8 MAC),可能会表现得相当出色。但想要运行LLM呢?这可能需要4位权重来压缩大型模型,却需要16位激活函数(甚至可能是16位浮点数)来保持精度,因此,4x16 MAC会成为基本构建模块。而你想要运行的网络类型的广度,将决定是否可以使用仅支持30或40个图运算符的固定功能NPU加速器,还是需要一个能够运行PyTorch目前提供的2,300多个运算符的处理器。但设计一款在汽车车载信息娱乐(IVI)和先进驾驶辅助系统(ADAS)等领域取得成功的NPU处理器,并不需要具备大语言模型设计方面的数据科学专业知识,也不需要具备终端市场的专业知识。简而言之,你需要了解AI工作负载中包含的内容,而不是如何创建它们。”

不同类型的处理器,设计人员所需了解的知识也存在差异。

Rambus的Woo表示:“面向手机的电池供电移动处理器设计人员,专注于功耗和快速的电源状态转换,处理器在支持较小内存容量的小型环境中独立工作。相比之下,用于在最大工作负载下进行训练和推理的数据中心AI处理器,则注重性能和吞吐量,拥有更大的功耗预算和先进的散热解决方案,以及更高的内存容量和带宽。专注于AI训练的GPU设计人员,会优先考虑这些数据密集型任务的并行性和内存带宽。同时,针对推理进行优化的处理器通常资源需求较低,因为模型经过量化,以降低内存容量和带宽需求。有针对性的处理流水线可以提高数据中心以外设备的效率。无论是云规模、移动还是嵌入式设备,每种类型的处理器都需要设计人员对工作负载结构、性能瓶颈和部署环境有特定的理解。”

工作负载的呈现方式

向NPU设计人员呈现工作负载的最佳方式是什么?Roddy表示,最简单的解决方案是提供一组具有代表性的基准模型。

“假设你想构建一个高效的LLM推理‘机器’来运行Llama和DeepSeek的QWEN大模型,”Roddy解释道,“可以从已发布的公共模型开始。这些模型的结构——即图运算符及其之间的互连——都是公开的。经过训练的模型权重——数十亿个参数——是专有且通常是被保密的。分析参考模型,您可以快速了解:a)数据类型(精度);b)所需的计算量——MAC、高斯方程、二次方程、简单平均或控制流操作;c)每种运算的频率或强度,即哪些操作被执行了数十亿次,哪些操作只执行两次。唯一棘手的部分是准确描述您希望机器能够应对哪些未来变化。数据类型会改变吗?常用的运算符会改变吗?需要注意的是,PyTorch拥有超过2,300个运算符,其中大多数目前很少使用,但在未来的AI创新中可能会突然变得至关重要。目前已知的工作负载,加上您所需的未来灵活性,就能完整描述需要解决的问题。”

同时,最终应用可能会为处理器设计提供明确的限制条件,或者至少是边界条件。“例如,在安全关键型应用中,需要实施看门狗或锁步等安全机制,以防止处理器陷入任何类型的死锁,”弗劳恩霍夫IIS自适应系统工程部门设计方法负责人Roland Jancke指出,“针对这种情况,有相应的标准和测试程序,以便设计能够根据这些标准进行认证。”

其他来自应用的要求,例如能耗,则不那么容易量化。“一款成熟的水冷式AI加速器或许能满足手头的任务,但对于轻量级无人机应用来说,它又太重了,”Jancke说道,“一般来说,自主系统会为处理器设计设定功耗和重量的边界条件。另一方面,根据我们与业界沟通的经验,问题通常是反过来问的:‘特定算法的开发者需要在多大程度上了解执行处理器的确切结构和属性?’当然,了解可用处理单元的细节或许可以提高算法实现的效率。然而,这些架构细节可能会在开发周期中发生变化。考虑到这一点,我们看到了向抽象化发展的趋势。设置一个定义明确的接口(如API),可以实现硬件和软件相对独立的开发。软件基于该API进行开发,而硬件则专注于尽可能高效地执行API指令。即便不了解也不考虑确切的应用,这对开发过程而言可能也是有利的。”

所有这些技术考量,正是AI IP对某些AI处理器开发者有意义的原因所在。“SoC开发者必须了解客户的需求,”Cadence的Lawley表示,“但很多人忽略的另一个关键因素是编译将在其SoC上运行的AI模型的软件。他们必须开发这类软件,并在解决方案的整个生命周期内对其进行维护。而且,随着AI的快速发展,组建软件团队并找到合适的人才成本高昂。他们必须找到不仅是AI开发者的编译器专家。这些专家必须获取该模型,进行编译,然后进行优化,使其能够在他们创建的特定硬件上运行。很多时候,这对他们来说很困难,除非他们有非常具体、定制的工作负载,并且同一模型将始终运行在这些工作负载上。”

处理器专业化与支持不断变化的工作负载之间的相互作用,对设计人员来说是一个巨大的挑战。准确预测工作负载既必要,又难以实现。

这正是硬件加速仿真发挥作用的地方。“对于肩负着猜测或预测工作负载模样的验证工程师和 RTL 设计人员来说,他们已经做得很好了,但硬件加速仿真平台的出现具有革命性的意义,因为它彻底消除了系统中的猜测成分,”Ansys(现为新思科技旗下公司)的Suhail Saif指出,“你可以将系统以FPGA格式或类似格式放入仿真器中,并在制造之前运行真实的工作负载。说到真实的工作负载,无论是在iPhone上运行Safari浏览器,还是在手机上播放社交媒体视频、拨打电话、在iPad上玩游戏等,这些都是芯片、系统或设备设计人员希望终端用户执行的非常真实的工作负载场景。”

结语

AI处理器需要在性能、功耗和足够的面积之间取得平衡,以确保设计面向未来。“没人会因为在SoC中加入AI功能而被解雇,”Lawley表示,“无论你是采用IP供应商提供的方案,还是在SoC中加入一些矩阵乘法功能,现在都是时候这么做了,因为所有人日后都会回想:‘我要是在硬件中加入更多AI功能就好了’,因为硬件部分是难点。对于SoC而言,从设计到制造需要2到5年的时间。为AI功能以及灵活的AI功能预留面积至关重要。模型变化很快。对于现在已有的模型,谁知道未来会不会出现经过充分优化且性能更优的新模型呢?所以,要确保你的SoC具备AI功能,然后尽量确保其具备足够的灵活性,并将其接入能以多种方式使用的系统中。”

来源:王树一一点号

相关推荐