Google XProf 新增 Pallas 内核分析
Google 为其开源 TPU 性能分析器 XProf 加入内核性能分析套件,可查看自定义 Pallas 内核的周期级细节。此前这类用 Pallas、Mosaic 或 Triton 写的内核会跳过标准 XLA Pass,在跟踪记录中只是一个不透明块,导致静态成本模型给出的“optimal FLOPs”、有效吞吐等指标失真。新功能通过编译器标志展示降低后的 MLIR 与逐周期低级操作(LLO)数据,并以 1µs 分辨率采样硬件计数器(外部触发模式下可达亚微秒级)。在一个分块矩阵乘法示例中,Google 借 sync_wait 计数器发现内存停顿,改用三重缓冲后内核执行时间从 125.5µs 降至 88µs,约 30%,但文章强调这只是单个演示内核,并非基准测试。
对调优 TPU 内核的工程师而言,寄存器级硬件计数器比编译器静态估算更可信,XProf 的新工具把优化依据从“模型说”转向“硬件说”。

Google 为 XProf" 添加了"一个内核性能分析套件。XProf 是其面向 TPU" 工作负载的开源性能分析器。现在,开发者可以查看自定义 Pallas 内核"中的周期级细节。此前,这些内核在跟踪记录中显示为单个不透明块。在 TPU v7(Ironwood)"上,XProf 会在运行时对硬件性能计数器进行采样。在一个分块矩阵乘法示例中,Google 发现了内存停顿问题。通过添加三重缓冲,他们将内核执行时间从 125.5µs 缩短至 88µs,降幅约为 30%。
据 Google AI Infra 团队的 Yogesh SY 介绍,这一差距源于性能分析器处理自定义编译路径的方式。使用 Pallas、Mosaic 或 Triton 创建的内核会跳过标准 XLA Pass。这可能使编译期静态成本模型产生偏差。因此,“optimal FLOPs”和有效吞吐效率等指标可能不准确,甚至完全无法工作。静态工具可能会将一个 MXU 指令块标记为已充分利用,但该单元实际上正在空闲等待 HBM,因为静态分析忽略了时间因素。