跳转至正文

AMX,高级矩阵扩展

架构参考Feex

亦称 AMX、AMX(Advanced Matrix Extensions)

Intel AMX 为 x86 增加了基于图块(tile)的矩阵计算设施。AMX-TILE 和算术扩展具有独立的特性位,且操作系统必须管理庞大的 tile 状态。

您需要了解的内容

Intel AMX 为 x86 增加了基于图块(tile)的矩阵计算设施。AMX-TILE 和算术扩展具有独立的特性位,且操作系统必须管理庞大的 tile 状态。

工作原理

AMX 使用配置好的二维 tile 寄存器,而非普通的 YMM/ZMM 向量。Tile 配置描述生效的形状,而诸如 AMX-INT8 或 AMX-BF16 之类的算术扩展则定义了具体的矩阵运算和数值格式。软件需要打包数据,并在枚举的调色板(palette)限制内选择有效形状。

适用场景

矩阵库可以将受支持的内核低级化为 tile 加载、点积运算和 tile 存储。打包开销、矩阵维度和缓存局部性可能会在小型或不规则负载中起主导作用。Tile 硬件并不能让每个神经网络算子都符合加速条件。

如何检查支持与启用状态

请在 CPUID 叶 7 中检查 AMX-TILE 及各项所需的算术扩展,枚举 tile 限制并确认操作系统已启用该状态。在 Linux 上,使用动态 tile 数据的应用程序必须遵循文档记录的 ARCH_REQ_XCOMP_PERM 流程;仅有支持位和 XCR0 位是不够的。

硬件可用性仅仅是第一步。驱动程序、运行时、执行提供程序、受支持的算子和数值格式都必须与应用程序相匹配。请检查实际的后端选择和回退方案,而不是假设带有 AI 标签就意味着每个模型都能获得加速。

该特性未确立的内容

AMX 并不等同于 AVX-512、通用 NPU 或支持每种 AMX 算术格式。单凭 CPU 位本身并不能确立进程权限或足够的信号栈状态。即使在支持 AMX 的机器上,不受支持的 tile 形状或缺失的操作系统权限也可能引发故障。

实践中的兼容性与性能

在规定的条件下对比完整的负载,包括编译、传输和不受支持的算子。每秒峰值运算次数取决于精度和计数假设。它们不能替代所测得的延迟、吞吐量、能效或模型准确率。

实用验证核对清单

  1. 记录所涉及的具体处理器或平台型号,以及应用程序、操作系统和运行时的版本。保留实际错误或要求的原始措辞。
  2. 查阅该具体型号的制造商参考资料,然后检查程序运行环境中生效的功能与启用状态。
  3. 逐项比对所选二进制文件或后端的每项要求。仅凭名称相似的特性、别名或宽泛的技术标签是不够的。
  4. 确认应用程序选择了预期的实现。在不满足要求时,使用其文档中记录的诊断工具和受支持的回退方案。
  5. 每次只进行一项受支持的更改并重复相同的负载测试。保留原始配置和恢复路径以便随时使用。

若特性已列出但软件无法使用

首先排查出现故障的具体组件。硬件数据库描述的是记录在案的功能;操作系统或虚拟机监控程序可能会呈现不同的生效环境。非法指令错误同样需要调查实际发生故障的指令和二进制构建版本,因为数据损坏或不相关的未受支持指令也可能产生类似症状。

安装适用于该特定平台的受支持应用程序、驱动程序或运行时版本,并在需要时使用厂商文档记录的基线或回退构建版本。软件更新无法凭空创造处理器缺失的指令。固件和安全策略的更改应遵循系统制造商的规程和恢复计划,而非通用的优化方案。

本说明的来源与适用范围

Intel 64 和 IA-32 架构软件开发人员手册 · Linux 内核:在用户空间使用 XSTATE 特性

这些参考资料确立了架构行为和软件要求。它们并不独立验证关联硬件型号页面上的每个特性值。如需了解型号支持情况,请使用该页面的制造商证据并检查实际生效的系统配置。本文不提供基准测试、认证或独立审查日期。

来源与验证

编辑归属:Feex。未记录独立审核日期。 我们的研究方式.

这篇文章有用吗?

回答"是"或"否"即可。如果您愿意,可以选择一个原因,或添加一段简短附言。

这篇文章有用吗?