硬件VPU
VPU(向量处理单元)
也称为 VPU、Vector Processing Unit、TPU 向量单元、向量单元
先用大白话
VPU 是 TPU 中负责逐元素计算的部件,处理激活函数、softmax 和状态更新等,与矩阵单元协同工作。
技术定义
VPU(Vector Processing Unit)是 TPU TensorCore 内的 SIMD 引擎,在末维为 128 lane 的 tile 上执行逐元素、归约和数据重排操作。
工程细节
MXU 负责矩阵乘法,VPU 负责矩阵乘法周围的一切:激活函数、归一化、softmax、rank-one 状态更新,以及把 kernel 各阶段拼接起来的缩放向量加法。VPU 处理的 tile 末维是 128 lane、8 sublane,末维更小的数组会被补齐。MXU 和 VPU 的工作相互重叠时 kernel 更快,一方等待另一方时更慢;同时存活的值太多时还会导致向量寄存器溢出到 VMEM。
为什么重要
Gated DeltaNet 输出投影的改写完全是为了让两个单元重叠。原先 VPU 先执行 rank-one 更新,MXU 再把更新后的状态乘以 query,MXU 只能等待。重排代数式后,MXU 可以直接用衰减后的状态计算 Sq,VPU 同时构建下一个 token 的状态,本次更新对输出的贡献则用每个 head 一个标量乘向量的方式单独加上。
如何在 InferenceX 中解读
这一重叠让 Qwen3.5 397B 在 8k1k 上的吞吐量在并发 64 下提高 2.79%,在并发 512 下提高 4.48%。后续改动在 decode 循环内对 Q 和 K 切片以减少向量寄存器溢出,decode-64 kernel 快了约 20%,端到端收益在并发 512 下为 8k1k 0.8%、1k8k 3.8%。