硬件MXU
MXU(矩阵乘法单元)
也称为 MXU、Matrix Multiply Unit、systolic array、脉动阵列
先用大白话
MXU 是 TPU 内部做矩阵运算的乘加单元网格,只有每个单元都有真实计算时才能跑满。
技术定义
MXU(Matrix Multiply Unit)是 TPU TensorCore 核心的 systolic 阵列,一个二维乘加单元网格,权重固定在阵列中,激活值从边缘流入。
工程细节
权重加载进阵列后保持不动,激活值从一侧进入,部分和逐格向前传递并累加,最终结果从另一侧流出,中途不经过内存。TPU v5 及之前使用 128x128 阵列,每周期 16,384 次 MAC;从 v6e 开始直到 Ironwood,阵列扩大到 256x256,每周期 65,536 次 MAC。XLA 编译器会把小于阵列边长的矩阵维度补齐到整块 tile,而每个补齐的单元在那个周期同样占用一个 MAC。
为什么重要
更宽的阵列只有填满时才没有代价。在 256 宽的 MXU 上,head dim 为 128 会让注意力矩阵乘法的利用率上限只有 50%,head dim 为 64 则在写任何 kernel 代码之前就被限制在 25%。GPU 矩阵核心消费的是小 tile,同样的形状在 H100 或 B200 上几乎没有损耗。在 GPU 上随意选择的模型超参数,在 TPU 上会直接变成吞吐量损失。
如何在 InferenceX 中解读
TPU 上的模型 bring-up 成本取决于模型与 MXU 的匹配程度,而不是模型的流行程度。Qwen3.5 被选为 TorchTPU 的第一个 bring-up 模型,部分原因就是它的形状匹配得比较干净;InferenceX Official Preview 描述的 Pallas kernel 工作,核心目标也是让阵列保持满载。