电脑代理ip地址国外
人工智能模型的复杂性不断增加,网络数量和种类也呈爆炸式增长,使得芯片制造商在固定功能加速和可编程加速器之间徘徊,并创造了一些同时包含两者的新方法。
总的来说,通用的 AI 处理方法并不达标。通用处理器就是这样的。它们不是为任何特定工作负载而设计或优化的。而且由于 AI 消耗了系统功耗的很大一部分,因此专注于特定用例或工作负载可以在更小的占用空间内实现更大的功耗节省和更好的性能。
Rambus 研究员、杰出发明家 Steven Woo 表示:“在过去十年中,人工智能对计算和半导体行业产生了深远的影响——以至于现在已经采用了专门的处理器架构,并且还开发和采用了仅服务于人工智能市场的专用组件。”
但这种专业化是有代价的。Arm 研究员兼机器学习技术副总裁 Ian Bratt 表示:“对于 ML 和 AI 来说,计算需求是无止境的。如果你能做 10 倍以上的计算,人们就会使用它,因为当你运行一个 10 倍大的模型时,你可以做得更好。因为这种需求是无止境的,所以它会推动你针对该工作负载进行优化,并且已经构建了不同类型的 NPU,它们可以在特定类别的神经网络模型上实现非常好的能源效率,并且你可以在这些空间中获得出色的每瓦操作数和性能。然而,这是以灵活性为代价的,因为没有人知道模型的发展方向。所以它牺牲了面向未来的方面。”
因此,一些工程团队正在研究不同的优化方法。Bratt 说:“通用计算平台(如 CPU 和 GPU)一直在为神经网络增加更多内部加速,同时又不牺牲这些平台(如 CPU)的通用可编程性。”Arm 拥有 CPU 指令路线图,并且多年来一直在增加架构和 CPU 以提高 ML 性能。“虽然这仍然在通用平台上,但你可以在那里获得很多东西。它不如专用的 NPU 好,但它是一个更灵活、更面向未来的平台,”他说。
提高效率至关重要,它影响一切,从超大规模数据中心训练人工智能模型所需的能量到进行推理的边缘设备的电池寿命。
Ansys 产品营销总监 Marc Swinnen 表示:“如果你采用经典的神经网络,其中有多层节点,信息从一个节点传递到另一个节点,那么训练和执行的本质区别在于,在训练期间,你有反向传播。你获取数据集并在节点中运行它。然后计算误差函数,即与你知道需要实现的标记结果相比,答案有多错误。然后你获取该误差并反向传播,并调整节点上以及节点之间连接的所有权重以减少误差。然后你再次用更多数据扫描,然后再次反向传播误差。你来回反复,这就是训练。每次扫描你都会改进权重,最终你希望收敛到一组由节点、偏差以及可以提供可靠输出的权重和值组成的数万亿个权重和值。一旦你有了每个节点的权重和所有参数,并且执行了实际的 AI 算法,那么你就不需要进行反向传播了。你不需要再纠正它了。你只需输入数据并将其传递下去。这是一种更简单、单向的数据处理方式。”
“你必须对所有节点和所有数据进行平均,以形成误差函数,然后对其进行加权和除法等等。”Swinnen 解释道。“反向传播需要进行所有数学运算,而这在实际执行(推理期间)中不会发生。这是最大的区别之一。推理中需要进行的数学运算少得多。”
然而,这仍然需要进行大量的处理,并且随着人工智能算法变得越来越复杂,浮点运算的数量增加,趋势线只会指向上方和右侧。
西门子数字工业软件高级综合部门项目总监 Russ Klein 表示:“过去五年来,获胜的 ImageNet‘Top1’算法执行的浮点运算数量增加了 100 倍。” “当然,LLM 正在创下模型参数的新纪录。随着计算负载的增加,在通用 CPU 上运行这些模型变得越来越不切实际。AI 算法通常具有高度数据并行性,这意味着操作可以分布在多个 CPU 上。这意味着只需将更多 CPU 应用于问题即可满足性能要求。但在 CPU 上执行这些计算所需的能量可能非常高。GPU 和 TPU 通常具有更高的功耗,但计算速度更快,从而降低了相同操作的能耗。”
尽管如此,对更多处理能力的需求仍在不断增长。新思科技解决方案事业部产品经理 Gordon Cooper指出,生成式 AI 推理的基准测试请求数量急剧上升,表明人们的兴趣日益浓厚。“我们最近 50% 以上的基准测试请求中至少有一个生成式 AI 模型在列表中,”他说。“更难评估的是,他们是否有特定的用例,或者他们是否在两面下注,并说‘这是趋势。我必须告诉人们我有这个。’我认为有必要声称这种能力仍然领先于用例。”
与此同时,这些模型的变化速度也在不断加快。“我们距离硬连线 AI(即 ASIC)还有很长的路要走,以至于‘这就是它。标准已经确定。这些是基准,这将是最高效的’,”Cooper 说。“因此,可编程性仍然至关重要,因为你必须能够为接下来出现的东西提供一定程度的可编程性,以确保你有一定的灵活性。但是,如果你的可编程性太强,那么你就只是一个通用 CPU 甚至 GPU,那么你就没有利用边缘设备的功率和面积效率。挑战在于如何尽可能地优化,同时又能为未来提供可编程性。这就是我们和我们的一些竞争对手试图在足够灵活的领域中徘徊的地方。一个例子是激活函数,例如 ReLU(整流线性单元)。我们过去常常将它们硬连线,但现在我们发现这很荒谬,因为我们无法猜测它们下次需要什么。所以现在我们有一个可编程的查找表来支持未来的任何人。我们花了几代人的时间才意识到我们必须开始让它变得更加灵活。”
AI 的快速发展得益于计算性能和容量的巨大进步。“我们现在处于 AI 2.0 时代,”Rambus 的 Woo 说道。“AI 1.0 的真正特点是首次尝试将 AI 应用于整个计算领域。语音助手和推荐引擎等开始受到关注,因为它们能够使用 AI 提供更高质量的结果。但回顾过去,它们在某些方面是有限的。系统可以使用某些类型的输入和输出,但它们并没有真正生成今天能够生成的高质量信息。我们今天所处的位置是在 AI 1.0 的基础上构建的。AI 2.0 的特点是系统现在可以从它们学习到的数据和它们获得的输入中创造出新的东西。”
这些技术中最重要的是大型语言模型和生成式人工智能,以及帮助人类提高生产力的副驾驶和数字助理。“这些系统的特点是多模态输入和输出,”Woo 解释道。“它们可以接受许多输入,文本、视频、语音甚至代码,并且可以从中产生新的东西。事实上,它们也可以从中产生多种类型的媒体。所有这些都是朝着通用人工智能 (AGI) 的更大目标迈出的又一步,我们作为一个行业,正在努力提供更像人类的行为,这些行为建立在人工智能 1.0 和人工智能 2.0 为我们设定的基础之上。这里的想法是能够真正适应我们的环境,并为特定用户和特定用例定制结果。内容生成的方式将得到改进,特别是在视频等方面,甚至在未来,使用 AGI 作为一种方式来指导自主代理,例如既能学习又能适应的机器人助手。”
在此过程中,人工智能模型的规模一直在急剧增长——每年增长约 10 倍或更多。“今天,2024 年可用的最大模型已经突破了万亿参数大关,”他说。“这是因为更大的模型提供了更高的准确性,而我们仍处于让模型达到非常高效的阶段的早期阶段。当然,这仍然是通往 AGI 的垫脚石。”
三四年前,在视觉转换器和 LLM 出现之前,SoC 对新 NPU 功能的要求规范通常仅限于一小部分知名且经过优化的检测器和图像分类器,例如 Resnet50、ImageNet v2 和传统 VGG16。Quadric 首席营销官 Steve Roddy 表示:“半导体公司通常会评估这些网络的第三方 IP,但最终决定为这些基准网络中的通用构建块图运算符构建自己的加速器。事实上,批量 SoC 中的绝大多数 AI 加速都是自主研发的加速器。2024 年所有领先手机 SoC 的拆解将证明,所有六大批量移动 SoC 都使用内部 NPU。”
其中许多可能会被更灵活的商业 NPU 设计所取代或补充。“新 NPU IP 的提案请求通常包括 20、30 个或更多网络,涵盖一系列经典 CNN,例如 Resnet、ResNext 等,新的复杂 CNN(即 ConvNext),视觉转换器(例如 SWIN 转换器和可变形转换器)以及 GenAI LLM/SLM,其中有太多的模型变体无法计数,”Roddy 说。“构建硬连线逻辑来加速由数百种不同的 AI 图形运算符变体组成的如此多种多样的网络是不可行的。因此,SoC 架构师正在寻找更完全可编程的解决方案,大多数内部团队都在寻找外部第三方 IP 供应商,这些供应商可以提供快速编译新网络所需的更强大的编译器工具集,而不是以前手动移植 ML 图的劳动密集型方法。”
人工智能的这种演变类似于计算领域随着时间的推移所发生的演变。“首先,计算机出现在数据中心,然后计算开始向外扩散,”Cadence Neo NPU 产品营销总监 Jason Lawley 说。“我们转向台式机,然后进入人们的家庭,并向外扩展。然后我们有了笔记本电脑,接着是手机。人工智能也是一样。我们可以看看在数据中心开始进行人工智能所需的计算强度。我们现在在 NVIDIA 身上看到了这一点。
话虽如此,大型机和数据中心永远都有一席之地。我们将看到人工智能从数据中心向外扩散,我们看到人工智能从数据中心向边缘扩散。当你移动到边缘时,你会得到各种不同类型的应用程序。Cadence 专注于视频、音频和雷达,以及围绕这些的其他计算类,每个支柱都是应用处理器的加速器。在每个支柱中,他们可能需要做更多的人工智能,因此人工智能 NPU 成为加速器的加速器。”
客户行为也在不断发展。“越来越多的系统公司和最终用户拥有自己的专有模型,或者使用专有数据集重新训练的模型,”Roddy 说。“这些 OEM 和下游用户不能或不会将专有模型发布给硅片供应商,让硅片供应商的移植团队开发出新的模型。即使你可以在供应链上下游制定 NDA 保护措施,依赖于人工调整和移植 ML 模型的工作模型也无法扩展到足以支持整个消费电子和工业电子生态系统。新的工作模型是一个完全可编程的、基于编译器的工具链,可以交由创建最终应用程序的数据科学家或软件开发人员使用,这正是几十年来领先的 CPU、DSP 和 GPU 的工具链的部署方式。”
随着算法的复杂性不断增加,设计人员被迫追求更高水平的加速。西门子的 Klein 表示:“加速器越是针对特定模型进行量身定制,它的速度就越快、效率就越高,但通用性就越差。而且它对应用和需求变化的适应性也会降低。”
图 1:运行 AI 模型、CPU、GPU、TPU 和自定义加速器的不同执行平台的功率和性能关系
Rambus 的 Woo 还看到了向更大 AI 模型发展的趋势,因为它们可以提供更高质量、更强大和更准确的结果。“这一趋势没有放缓的迹象,我们预计未来对更大 DRAM 容量和更大 DRAM 带宽的需求将继续大幅增加。我们预计这种情况将持续下去。我们都知道,AI 训练引擎是 AI 的展示部分,至少从硬件方面来看是这样。NVIDIA 和 AMD 等公司的计算引擎,以及谷歌等公司生产的专用引擎(TPU),在行业计算和提供更好 AI 的能力方面取得了巨大进步。但这些引擎必须输入大量数据,而数据移动是当今限制我们训练模型速度的关键因素之一。如果这些高性能引擎在等待数据,那么它们就没有完成工作。我们必须确保整个管道的设计能够以能够让这些引擎保持运行的方式提供数据。
如果我们从左到右看,通常的情况是存储了大量的数据,有时是以非常非结构化的方式存储的,因此它们会存储在 SSD 或硬盘驱动器等设备上,这些系统的任务是提取最相关、最重要的数据来训练我们正在训练的模型,并将其转换为引擎可以使用的形式。这些存储系统也有很多常规内存,用于缓冲区等。举个例子,其中一些存储系统的内存容量可以高达 1TB。一旦数据从存储中提取出来,它就会被发送到一组服务器进行数据准备。有些人称之为读取层。这里的想法是获取这些非结构化数据,然后对其进行准备,以便以 AI 引擎可以最佳训练的方式使用它。”
同时,替代数字表示可以进一步改善 PPA。“浮点数通常用于 Python ML 框架中的 AI 训练和推理,但对于这些计算来说,浮点数并不是理想的格式”,Klein 解释道。“AI 计算中的数字主要在 -1.0 到 1.0 之间。数据通常会被标准化到这个范围。虽然 32 位浮点数的范围可以从 -10 38到 10 38,但这会在数字和对这些数字执行计算的运算符中留下大量未使用的空间。运算符的硬件和存储值的内存会占用硅片面积并消耗电量。”
Google 创建了一种名为 brain float (bfloat) 的 16 位浮点数格式,该格式针对 AI 计算。由于模型参数和中间结果的存储区域减少了一半,PPA 得到了很大的改善。矢量化 (SIMD) bfloat 指令现在是 RISC-V 处理器的可选指令集扩展。一些算法使用整数或定点表示来部署。从 32 位浮点数移动到 8 位整数需要四分之一的内存区域。数据在设计中的移动速度提高了四倍,乘法器缩小了 97%。较小的乘法器允许在相同的硅片面积和功率预算中使用更多的运算符,从而实现更高的并行性。“Posits”是另一种在 AI 算法上运行良好的奇特表示。
“通用 AI 加速器(例如 NVIDIA 和 Google 生产的加速器)必须支持 32 位浮点数,因为某些 AI 算法需要它们,”Klein 说道。“此外,它们还可以增加对各种大小的整数的支持,可能还有脑浮点数或假设。但支持每种新的数值表示都需要该表示的运算符电脑代理ip地址国外,这意味着需要更多的硅片面积和功率,从而损害 PPA。除了 32 位浮点数外,一些 Google TPU 还支持 8 位和 16 位整数格式。但如果应用程序的最佳大小为 11 位特征和 7 位权重,则不太合适。需要使用 16 位整数运算符。但具有 11 x 7 整数乘法器的定制加速器将使用大约 3.5 倍的面积和能量。对于某些应用程序来说,这将是考虑定制加速器的有力理由。”
“当你获得高度定制或定制程度不一的产品的授权时,你得到的东西就会有所不同,” Expedera营销副总裁 Paul Karazuba 说道。“它不是标准产品。因此,你需要一点时间来学习。你得到的是精品产品,而这些产品中会有一些你作为芯片设计师独有的钩子。这意味着,作为一名芯片设计师和架构师,你需要学习曲线,以准确了解这些产品在你的系统中将如何发挥作用。这样做有其优势。如果标准 IP(如 PCIe 或 USB)中包含你不想要或不需要的内容,那么其中的钩子可能与你作为芯片设计师所选择的架构不兼容。”
这本质上是设计中的裕度,它会影响性能和功耗。“当你获得定制的 AI 引擎时,你可以确保那些你不喜欢的钩子不存在,”Karazuba 说。“你可以确保 IP 在你的系统中发挥良好作用。所以,这样做肯定有好处。但也有缺点。你无法获得标准 IP 所具有的规模。但对于高度定制的东西,你就会拥有它。你会得到一些定制的东西,这对你的系统有一些好处,但你需要处理更长的交货时间。你可能要处理一些独特的东西。会有一些复杂之处。”
然而,这些好处可以超过学习曲线。在一个早期的客户示例中,Karazuba 回忆道:“他们开发了自己的内部 AI 网络,旨在降低 4k 视频流中的噪音。他们想要实现 4k 视频速率。这是他们内部开发的网络。他们花了数百万美元来构建它。他们最初打算使用其应用处理器上现有的 NPU,正如您所猜测的那样,这是一个通用 NPU。他们将算法放在该 NPU 上,获得了每秒两帧的帧率,这显然不是视频速率。他们找到我们,我们向他们授权了我们 IP 的针对性定制版本。他们为他们打造了一款包含我们 IP 的芯片,运行完全相同的网络,获得了每秒 40 帧的帧率,因此通过构建一个专注的引擎,性能提高了 20 倍。另一个好处是,由于它是专注的,因此他们能够以应用处理器上 NPU 所消耗功率的一半来运行它。因此,以不到一半的功率实现了 20 倍的吞吐量。
公平地说,它与应用处理器采用相同的工艺节点,因此这确实是同类比较。这些是您从此类事情中看到的好处。现在,显然存在成本方面的问题。构建自己的芯片比使用您已经购买的芯片上已有的东西要昂贵得多。但是,如果您可以利用这种人工智能来区分您的产品,并且可以获得这种级别的性能,那么额外的成本可能就不是障碍了。”
就未来的发展方向而言,Arm 的 Bratt 表示,AI/ML 已经足够多了。“我们将看到,在人们真正关心能源效率且工作负载较慢的情况下,例如深度嵌入式环境,您会看到这些专用的 NPU 具有针对这些 NPU 的高度优化模型,您将获得出色的性能。但总的来说,像 CPU 这样的可编程平台将继续向前发展。它们将在 ML 方面不断进步,并且它们将运行那些全新的工作负载。也许您无法将它们映射到现有的 NPU,因为它们有新的运算符或新的数据类型。
但随着情况稳定下来,对于某些垂直行业,您将采用在可编程平台上运行的那些模型,并针对 NPU 对其进行优化,您将在嵌入式垂直领域(如监控摄像头或其他应用程序)中获得最佳性能。这两种模式将在未来相当长的一段时间内共存。”
Cadence 的 Lawley 表示,芯片架构师和设计工程师需要了解 AI 处理带来的变化,归结为三件事:存储、移动和计算数据。
“从根本上说,这三件事自摩尔定律开始以来就没有改变过,但他们必须意识到的最重要的事情是低功耗和最佳数据使用的趋势,以及量化方面的进步——将内存固定到系统中并有效重复使用的能力。那么在数据移动、数据存储和数据计算中,应该使用哪种层融合?软件在这方面发挥的作用与硬件一样重要,因此算法能够不错误地计算不需要计算的东西,并移动不需要移动的东西——这是我们关注的重点。我们如何以最小的能量获得最大的性能?这是一个很难解决的问题。”