Arm 为在各类技术领域运行无处不在的人工智能 (AI) 奠定了坚实的技术基础。这得益于我们行业领先的架构可在全球数十亿台多样化设备上支持各种计算工作负载。
Arm 始终专注于快速地进行架构演进,确保我们领先的生态系统能够适应未来的技术趋势和不断变化的计算需求。虽然 AI 的迅猛崛起似乎是最近才出现的现象,但过去二十多年来,Arm 一直致力于为 AI 创新奠定基础,先是在 Armv7 架构中引入了高级单指令多数据 (SIMD) 扩展,初探机器学习 (ML) 工作负载,再是如今的 Armv9 架构,我们在 Arm CPU 上集成了用于加速和保护如大语言模型 (LLM) 等先进的生成式 AI 工作负载的特性。
可伸缩矩阵扩展 (SME) 就是其中的一项创新特性,旨在满足当今 AI 和 ML 工作负载日益增长的复杂性和功耗需求。除了加速当今的 AI 发展之外,SME 还为 Arm 架构提供了灵活性,便于管理不断发展的生成式 AI 工作负载。
可伸缩矩阵扩展及其特性
SME 是 Armv9-A 架构中引入的指令集架构 (ISA) 扩展,可加速 AI 和 ML 工作负载,并为 Arm CPU 上运行的 AI 和 ML 应用提供更高的性能、能效和灵活性。具体而言是通过以下特性实现的:
显著提升 Arm CPU 上的矩阵和矢量处理吞吐量和效率;
通过引入外积指令,减少内存带宽压力,尽可能地复用寄存器中加载的数据;
扩展压缩用户数据,在不增加内存负载带宽的情况下提高输入元素的吞吐量;
支持多种存储和计算数据类型,使其成为适用于当前和未来多种用例的灵活解决方案;
允许在实现中选择介于 128 至 2048 位的 Streaming Vector Length (SVL),从而实现 SVL^2 的矩阵-矩阵乘法吞吐量。
SME2 在 SME 的基础上增加了多矢量指令,允许在矩阵和矢量运算中复用架构状态 (ZA Array),并具有更高吞吐量的矢量处理能力。这有助于通过压缩 AI 格式来减少内存带宽并节省功耗,从而实现矢量和矩阵加速的平衡。SME2 还能够灵活地动态去量化,并解压缩 2 位和 4 位权重,以节省内存带宽。在生成式 AI 工作负载日益复杂和耗电加剧的背景下,这些特性非常重要,同时也彰显了 Arm 致力于应对 AI 无止尽的能源需求。
SME 和 SME2 的关键用例
SME 可加速如生成式 AI 和经典 ML 网络,以及计算机视觉 (CV) 等各种类型的 AI 和 ML 工作负载。具体的实现途径是 SME 能够处理矩阵乘矩阵、矩阵乘矢量和多个矢量乘矢量运算,以及 ML 执行过程中所需的前处理和后处理阶段。我们预计,SME 将有益于不同市场的各种 AI 用例,包括:
结合了 ML 和经典 CV/DSP 方法的应用,例如电影摄影、媒体处理、驾驶员监控、数字化座舱、音频处理、先进驾驶辅助系统 (ADAS) L2+ 和实时语音助手等。
利用小语言模型和 LLM 的用例,包括聊天机器人、对话摘要和虚拟助手等。
矢量处理、矩阵处理和量化
要了解 SME 的工作原理,有必要解释一下它所支持的不同 AI 处理技术,以及 SME 和 Armv9 架构为每种技术带来的好处。其中包括:
矢量处理
矩阵处理
矩阵乘法
量化
矢量处理
在 AI 和 ML 语境中,矢量代表数值和数据点的一维数组,通常用于对神经网络中的特征、输入或权重进行编码。矢量处理常用于现代 AI 框架和库,例如 TensorFlow 和 PyTorch 等。利用此方法,AI 算法可以高效应对复杂计算,更快地处理大型数据集,从而缩短训练时间,提高性能。SME 包含矢量指令,可并行计算多个值,而不是按顺序处理每个值,从多方面大大加快了 AI 计算。
矩阵处理
矩阵是数值和数据点的二维数组,在包括 ML 和深度学习在内的各种 AI 技术中发挥着至关重要的作用。通过 SME 进行矩阵处理需要对这些矩阵进行运算,以提高基于 AI 的核心工作负载的性能和效率,包括线性代数运算(如矩阵乘法)和神经网络。
矩阵乘法
矩阵乘法是 AI 和 ML 工作负载以及科学模拟和计算机视觉等其他计算工作负载的重要组成部分。矩阵-矩阵乘法运算对 CPU 上的 AI 加速越来越重要,并显著受益于 SME。Arm 架构随时间推移不断演进,通过引入新特性提高了这些运算的性能和效率。例如:
Armv7 增加了高级 SIMD 扩展,也称为 Arm Neon 指令。
Armv8.4-A 支持 8 位整数点积指令。
Armv8.6-A 支持各种数据类型的矢量内整数和浮点矩阵乘法指令,包括新的 BFloat16 数据类型。
Armv9-A 包括可伸缩矢量扩展 2 (SVE2),用于数字信号处理器 (DSP)、媒体和通用矢量化。
Armv9.2-A 引入了 SME。
量化
量化涉及降低数值的精度,通常是从浮点表示法转换为定点表示法。SME 使用该过程来减少 AI 和 ML 模型的内存带宽、占用空间以及计算复杂性,进而提高其效率,这对计算密集型生成式 AI 工作负载非常重要。这意味着它们可以部署在资源受限的设备上,如智能手机、移动设备、嵌入式系统和物联网设备等。
Arm 架构长期致力支持 AI 特性
过去二十年来,Arm 一直致力于在架构上添加 AI 特性、规范和指令。2003 年首次发布的 Armv7 架构增加了高级 SIMD 扩展,也称为 Arm Neon 指令。Neon 将寄存器视为由相同数据类型的元素组成的一维矢量,指令可同时对多个元素进行操作。随后 Armv8 架构增加了一系列 AI 的规范和指令,包括点积指令、矢量内矩阵乘法指令和 BFloat16 支持。它还改进了高级 SIMD 扩展,将矢量寄存器的数量增加了一倍,并增加了浮点支持。所有这些改进和新增特性的目的都是用于加速 AI 和 ML 性能,以应对不断发展的 AI 工作负载。除了 SVE2、SME 和新的 SME2 之外,Armv9 架构还集成包含了所有这些特性、规范和指令。
SME 的核心优势
Armv9 架构上的 SME 显著提高了 Arm CPU 对现有 AI 和 ML 工作负载的处理能力,从而在各种 AI 驱动的设备和应用中带来速度更快、响应更灵敏的用户体验。它还能加速一系列使用矩阵运算的应用,如 DSP、科学计算、增强现实 (AR)、虚拟现实 (VR) 和图像处理等等,AI 和 ML 在所有这些应用中都扮演着日益重要的角色。
与能够以多种不同数据格式运行各种神经网络的 Arm CPU 类似,SME 也提供了灵活性,旨在满足不断发展的 AI 和 ML 工作负载日益复杂的要求。这将确保 Arm 架构在快速发展的 AI 时代及未来仍适用于至关重要的计算工作负载。展望未来,我们将继续在指令集中添加更多 AI 功能,以助益 Arm 领先的生态系统,让我们的合作伙伴能够为其 AI 解决方案提供更高的性能、创新特性和可扩展性。
基于 AI 的 Arm 架构创新
SME 体现了 Arm 在架构方面的不断创新。随着 AI 的不断发展壮大,SME 将确保 Arm CPU 能够高效地处理新的高能耗生成式 AI 工作负载,从而在数十亿台 Arm 技术驱动的设备上提供更好的 AI 体验。这将夯实 Arm 持续作为全球 AI 基石的地位。