摘要:业界越来越关注人工智能的功耗问题,但这个问题并没有简单的解决方案。这需要深入了解应用、半导体和系统层面的软件和硬件架构,以及所有这些的设计和实现方式。每个环节都会影响总功耗和效用。这是最终必须权衡的。
本文由半导体产业纵横(ID:ICVIEWS)编译自semiengineering
人工智能是否耗电过多?有些人认为如此,并认为降低功耗的成效已经显而易见。
业界越来越关注人工智能的功耗问题,但这个问题并没有简单的解决方案。这需要深入了解应用、半导体和系统层面的软件和硬件架构,以及所有这些的设计和实现方式。每个环节都会影响总功耗和效用。这是最终必须权衡的。
首先,必须解决电力的效用问题。电力是否被浪费了?“我们正在将电力用于有价值的事情,”Ansys(现已被Synopsys收购)产品营销总监Marc Swinnen说道。“它没有被浪费。这是电力的工业应用,它只是另一个行业——就像钢铁和铜一样。”
在许多情况下,这种电力消耗可以通过显著的节电来抵消。“农民使用人工智能来操作自动拖拉机进行耕作,”Microchip 高级产品营销经理 Diptesh Nandi 说道。“他们在喷洒农药和化肥时使用人工智能进行推理。这不仅节省了时间,还减少了化学品的使用量。生产这些化学品需要电力,因此使用人工智能可以节省电力。我们已经看到人工智能驱动的边缘设备蓬勃发展,尤其是在农业领域。”
在今年的设计自动化大会上,一些学者声称,在降低功耗方面,一些简单的改进措施已经实施。“我不同意这种说法,”新思科技系统设计事业部系统解决方案战略项目执行总监Frank Schirrmeister表示。“我们还远未达到优化所有目标。此外,应用需求增长如此之快,功耗方面难以跟上。问题可能是:‘如何实现最低功耗?’” 片上网络(NoC)的影响、芯片分区的影响、特定工作负载架构的影响、对更高性能的渴望,所有这些都会产生影响。这需要权衡功耗与否。
有人将计算机的功耗与自然功耗进行比较。“如果你观察像玄凤鹦鹉这样的生物,想想它大脑里20瓦的功耗能做什么,它就能飞,”Cadence计算解决方案事业部产品营销总监Jason Lawley说道。“它可以模仿文字,可以对周围环境进行复杂的视觉理解,进行3D计算,并在树林间飞翔。从这个角度来看,很多事情都是可能的。只是我们多久才能赶上它们的问题。我认为人工智能不会永远沿着同一条道路前进。还会有其他创新和发明让我们继续前进,比如神经形态计算。”
许多头条数据都与数据中心的训练有关,但从长远来看,这可能是错误的关注点。“传统上,训练占据了我们计算需求的主导地位,需要大量的数据集和更长的周期,”Normal Computing 的高级 AI 工程师 Doyun Kim 说道。“如今,我们看到测试时计算技术发生了根本性的转变,模型执行多步推理的思路链、思路树和代理工作流,每个查询都会触发数十次推理操作,其功耗现在可与训练强度相媲美。对于芯片设计师和数据中心运营商来说,这代表着一个重大转变。推理正成为首要的功耗考虑因素。但我们如何应对这一功耗挑战呢?”
这可能会迫使设计团队更加节约用电。Cadence 的 Lawley 表示:“边缘 AI 的功耗会增加,但它将更多地依靠电池供电。它将更加分散地融入我们的日常生活。相对而言,我们能为这些电池注入的电量与数据中心本身的耗电量相比微不足道,而用户会要求更长的电池续航时间。”
如果我们假设人工智能能够提供价值,那么我们可以看看等式的另一面。“现有的电网并非为人工智能而建,无法应对,”Ansys(现已被新思科技收购)总监里奇·戈德曼 (Rich Goldman) 表示。“升级基础设施将耗费大量时间,而且成本高昂。我们必须考虑本地能源创造,而不是试图将能源从生产地输送到需求地。小型核反应堆的时代即将到来。”
还有其他非碳排放的方式可以产生必要的电力。“好处是,数据中心可以建在任何有电的地方,”Ansys 的 Swinnen 补充道。“想想撒哈拉沙漠。那里土地充足,阳光充足,你可以建造太阳能发电场。人工智能的魅力在于,你只需在那里铺设一条光纤电缆,就可以将所有数据输入和输出,无需大量的基础设施。你不需要港口和道路。”
虽然这解决了数据中心的问题,但也必须考虑边缘计算。“在运行LLM时,设备边缘AI执行仍然是一个极其耗能的过程,”Normal Computing高级AI工程师Maxim Khomiakov表示。“高效地控制模型输出是一个巨大的挑战。暴力破解解决方案非常耗能。一种已知的技术是生成许多输出轨迹,并同时对有用的轨迹进行子集化,从而优化提示和答案。从长远来看,未来的道路是构建针对LLM和推理密集型工作负载优化的ASIC芯片。推理需求正在飙升,这正在赶上训练成本。”
边缘自主性正在不断发展。Microchip 的 Nandi 表示:“使用边缘 AI 的客户的主要需求是降低延迟。将数据发送到数据中心并获取响应需要耗费大量的时间和功耗。一种解决方案是在将数据发送到数据中心之前在边缘执行一些计算。例如,如果您在高速公路上监控车牌,75% 的工作负载是检测车牌的位置并沿路跟踪它。一旦您能够锁定该位置,就可以将数据发送回云端进行字符识别。”
模型规模持续扩大。“这些大型语言模型的变化速度持续上升,这直接增加了训练的消耗率,”Lawley说道。“观察它们在什么时候达到收益递减的临界点将会很有趣,但目前看来它们还远未达到这个临界点。它们持续输入更多数据,并取得了更好的结果。它们对初始数据集采用了不同的改进技术,并且对这些大型语言模型进行了二次训练和其他形式的训练。”
目前的目标似乎是创建更大、更统一的模型。“首先可以优化的是模型本身,”Synopsys 的 Schirrmeister 说道。“通过使模型更贴合其具体需求,可以获得很多好处。你可以让这些模型更加具体地针对应用程序,从而能够对其进行约束。你在模型上运行的、消耗所有能源的应用程序将变得更加优化,不再局限于泛化。”
这可能会让事情朝着不同的方向发展。“正如硅片行业引入多电压域、时钟门控和电源门控来节省功耗一样,我们可以将类似的概念应用于人工智能系统,”Normal 的 Kim 说道。“就像避免同时运行整个模型的混合专家 (MoE) 架构一样,我们可以使人工智能系统更加模块化。通过实时预测需要哪些模块并动态地仅激活必要的组件(类似于工作负载预测),我们可以通过智能系统级电源管理实现显著的节能效果。”
一些优化需要协同设计。Expedera 软件工程总监 Prem Theivendran 表示:“软件堆栈有很多改进的机会,例如运算符融合、布局转换和编译器感知调度。这些改进可以释放潜在的硬件效率,但前提是硬件能够发挥这些潜力。这需要硬件功能和软件优化之间的密切协调。当模型、编译器和硬件协同优化时,即使在已经非常高效的加速器上,也能获得显著的收益。”
边缘计算拥有更多机遇。“量化是最重要的关键之一,”Lawley 说道。“我们看到人们正在朝着两个方向发展。一是缩小规模。虽然目前许多人都在使用 Int8,但 Int4,有时甚至是 Int1 也在考虑之中。Int1 可以减少存储空间、带宽和计算量,而这三个方面是我们功耗的主要来源。我们看到越来越多关于混合量化模式的研究,其中一些层可能以 FP16 运行,因为它们非常重要,而其他层则以 Int4 运行。我们也看到人们从整数回归浮点,甚至使用 FP16 和 FP8,因为他们发现,在使用 8 位或 16 位非线性模型时,浮点数会获得更好的结果。使用浮点表示可以获得更精细的粒度。”
主要有两种方法。第一种是设计更适合执行AI 工作负载的架构,第二种是提高现有架构的效率。“工程始终是一个抽象的问题,从这个角度来看,这是一种权衡,因为你永远无法真正在整个设计层次结构中进行全面优化,” Fraunhofer IIS自适应系统工程部高级混合信号自动化部门经理Benjamin Prautsch 表示。“你试图尽可能地抽象,以便在更短的时间内创造更多价值。但这是以次优设计为代价的,至少对于特定用途而言是这样。我们永远无法真正找到最优方案。但当然,我们希望优化,而这需要对整个堆栈进行工作,沿着价值链从上到下。我们可能既需要整体视角,也需要能够优化点问题的良好点工具。最大的问题是人工智能变化太快,这与制造时间表并不真正兼容。”
功耗可以在流程的每个步骤中节省,但也可能被浪费。Cadence 数字与签核事业部产品管理总监 Jeff Roane 表示:“虽然降低功耗看似简单——最小化 P=fCv² 中的项——但功耗、性能和面积 (PPA) 之间的固有权衡使其变得复杂。由于难以测量和优化的故障功耗,这些复杂性在 AI 芯片数学函数中成倍增加。因此,必须在每个设计抽象级别进行由准确分析驱动的有效优化,其中架构级优化可提供最大的降幅,高达 50%;RT 级,高达 20%;门控物理良率高达 10%。”
在每个设计步骤中,了解工作负载至关重要。“功耗主要由动态功耗决定,而动态功耗高度依赖于矢量,”新思科技研究员 Godwin Maben 表示。“特定于 AI 的工作负载定义非常明确,因此生成工作负载并非问题。功耗主要取决于从计算到内存再到内存的数据移动。拥有节能的总线架构至关重要,甚至诸如压缩进出内存的数据之类的架构决策也至关重要。功耗降低具有可扩展性。由于同一计算单元的实例重复运行数千次,因此优化一个单元将显著降低整体功耗。”
在所有讨论中,数据移动都是功耗问题中最重要的一个。Arteris 产品管理和营销副总裁 Andy Nightingale 表示:“AI 工作负载涉及在计算单元、内存和加速器之间传输大量数据。为了降低每次推理的功耗,需要考虑本地化通信。与长距离传输相比,平铺或空间聚类技术更受青睐。我们预见到,未来巧妙的互连设计将成为SoC 架构师扭转 AI 功耗曲线的最重要杠杆。”
处理器的其他部分对工作负载的依赖程度较低。“如果回顾过去,矩阵乘法是贯穿整个人工智能领域的唯一不变的东西,”Lawley 说。“这部分其实并没有改变。量化变了,激活函数变了,带宽变了,人们排列不同层的方式也变了。但矩阵乘法的功能是不变的。我们确保拥有非常稳健的矩阵乘法解决方案,同时,我们在激活函数等方面的工作也拥有更高的可编程性。”
更重要的架构变革研究仍在继续。“关于内存计算的讨论尚未结束,”Schirrmeister 说道。“它有助于提升性能和功耗,因为你无需跨边界传输数据。你无需移动数据即可执行计算。这些都是尚未被充分利用的领域。其他人正在认真考虑神经形态计算。我不认为我们会被冯·诺依曼束缚。只是有太多的遗留问题依赖于它。你能用不同的方法吗,尤其是在 AI 加速的背景下?当然可以。市面上有很多方法。有什么方法可以坚持下去吗?可能是为了满足那些特定需求,比如降低能耗和功耗。”
为了更接近大脑的运作方式,必须考虑模拟技术。“市面上有一些非常有趣的模拟初创公司,已经取得了巨大的成果,”劳利说道。“遗憾的是,它们还无法扩展到所需的所有操作类型。对于模拟加速器擅长的领域,它们确实非常出色,而且功耗极低。但很多时候,它们不得不回归数字技术。模拟技术是一个复杂的制造过程。为了达到必要的控制水平,你需要确保所有电流、电阻以及线路连接的电容都正确。这是一个更难解决的问题。也许未来会得到解决,但各公司长期以来一直在努力解决这个问题。”
EDA 主要通过两种方式帮助降低 AI 功耗。首先是提供决策所需的信息。其次是提供工具,以实现高效的实施和优化。Expedera 的 Theivendran 表示:“EDA 可以将过去的猜测转化为数据驱动的设计,从而塑造 AI 架构。通过设计空间探索、工作负载分析和 AI 辅助调优,EDA 可以帮助架构师构建不仅功能齐全,而且能够完美适应实际 AI 工作负载的硬件。”
左移的真正程度在系统层面上变得显而易见。“我们现在不能只考虑芯片级优化——我们需要考虑从封装到电路板再到机架级的整个堆栈,”Kim 说。“尤为重要的是工作负载感知的系统设计。不同的 AI 工作负载——无论是训练、推理,还是这些新的测试时计算模式——都有着截然不同的功耗和散热特性。EDA 工具需要不断发展,以帮助我们根据实际工作负载特性分析和优化这些全系统交互。只有这样,我们才能设计出真正最大化硅片利用率的系统,而不是在大多数时间里受到散热限制。”
硬件架构的快速迭代使得更多选项可供考量。“EDA 需要整合高级的、具有物理感知能力的规划工具,”Arteris 的 Nightingale 说道。“自动化必须支持拓扑和布局的快速迭代,并模拟功耗与性能之间的权衡。基于 AI 的设计空间探索也有助于实现最佳的分区、布线和资源布局。”
工作负载、架构、事务与内存存储之间交互的复杂性不断增加。“它们变得过于复杂,人们难以预测,”Schirrmeister 说道。“仍然有一些组件,电子表格可以帮助你识别缓存对跨越芯片或芯片集边界的流量的影响,这可能会消耗更多电量。你仍然可以进行粗略计算并使用随机模型。但是,这些交互非常复杂,以至于人们要求在目标架构上运行 AI 工作负载,这样你才能确信自己在性能方面做得正确。”
人类创新仍有很大的空间。“这是一个复杂性的问题,而且它本质上太复杂了,这表明在设计过程中可能会出现大量的浪费,”弗劳恩霍夫的普劳奇说道。“在将问题分解成解决方案时,这种情况并不少见。这总是一种权衡,而且总是带有偏见。利益相关者之间的良好沟通至关重要,这样你才能快速排除各种选择,并迅速缩小到最合理的范围,但这并不一定意味着最优解决方案已经摆在桌面上。”
人工智能的功耗问题开始敲响警钟,这并非杞人忧天。但这与其他行业的兴起并无二致。关键在于我们如何应对。我们是应该创造更多清洁能源,还是应该以某种方式降低功耗?我们能否通过在半导体的舒适区之外进行设计来取得更好的效果?或者,这样做是否会限制其带来效益的速度?有人能够完全理解他们所做决策的含义吗?
解决方案需要众多利益相关者的共同努力,这在过去非常困难。如今,软件开发的速度远远超过了硬件的响应速度,一些人希望人工智能能够加快这一速度。“人工智能的终极目标是完全设计出能够提升人工智能自身效率的芯片,”Normal 的 Khomiakov 说道。
*声明:本文系原作者创作。文章内容系其个人观点,我方转载仅为分享与讨论,不代表我方赞成或认同,如有异议,请联系后台。
想要获取半导体产业的前沿洞见、技术速递、趋势解析,关注我们!
来源:半导体产业纵横一点号