AB
AiBoss
ニュース

Zyphra 发布 ZYFA:面向 AMD MI355X 的 FP8 FlashAttention 内核

Zyphra 开源 ZYFA,一套面向 AMD Instinct MI355X 的 FP8/BF16 预填充注意力内核,采用 Apache 2.0 许可。据其论文与博客,FP8 内核在真实模型激活上比 AMD 默认的 AITER 快 1.16–1.76 倍,但仅支持 MI355X 的因果预填充前向。

核心事实

Zyphra 发布了 ZYFA(Zyphra FlashAttention on AMD),这是一套面向 AMD Instinct MI355X GPU 的 FP8 与 BF16 预填充(prefill)注意力内核,代码以 Apache 2.0 许可开源,并同时提供技术论文。据 Zyphra 公布的数据,在真实模型激活上,其 FP8 内核比 AMD 默认内核库 AITER 快 1.16–1.76 倍;在 head dimension 为 128 时,FP8 误差比 AITER 低 62–78%。

ZYFA 支持 FP8 e4m3 与 BF16 的因果前向(预填充)注意力,覆盖 head dim 128 与 MLA 形状(192/128),提供可直接替换的 flash_attn_func 接口。运行环境为 ROCm 7.2.3 与 PyTorch 2.12。BF16 内核以 HIP 编写,FP8 内核则是由 Python 生成器产出的手工调度汇编。

背景与影响

Zyphra 指出,FP8 矩阵指令的峰值是 BF16 的两倍,但 FP8 只加速 QKᵀ 与 PV 两个矩阵乘,夹在中间的 softmax 仍在向量单元上以相同速度运行,因此 MI355X 上的 FP8 注意力受 softmax 限制。ZYFA 用三项技术应对:以一次乘加替代指数运算的 Lean P、让两波共享同一 SIMD 的双波乒乓调度,以及按块缩放并对舍入后的行和做除法。据其测量,矩阵流水线在稳态周期中的忙碌比例从 60% 提升到 86%。

在 32K 的合成基准上,head dim 128 的 FP8 内核达到 2,672 TFLOP/s,AITER 为 1,944;MLA 形状下为 2,464 对 1,237。真实激活上的加速为 1.16 倍(Mistral-7B)、1.17 倍(Qwen3-8B)与 1.76 倍(DeepSeek-V2-Lite)。ZYFA 是 Zyphra Optimization Engine(ZOE)的注意力引擎,后者支撑 Zyphra Cloud。

限制与来源

ZYFA 目前仅支持 AMD Instinct MI355X(CDNA4,gfx950),且只覆盖因果预填充前向,不含解码、分页 KV 等场景。Zyphra 说明,真实模型上的增益小于基准测试,原因是 MI355X 的时钟受操作数位翻转数量影响:在 Mistral-7B 层上 ZYFA 运行于 1,628 MHz,AITER 为 2,108 MHz。跨厂商对比数字来自不同输入与时钟,Zyphra 并未实测 NVIDIA GPU。上述性能与精度数据均来自 Zyphra 自述,尚未获独立验证;具体支持范围与许可条款请以官方仓库和论文当前信息为准。