strata-magic/hero.jpg" alt="Strata 魔改 WMMA Kernel 原理示意">

Strata 刚支持 7900XTX 时 prefill 才 700 多,把 vLLM 上的专用 WMMA kernel 搬过来,prefill 直接干到 1300+。

背景

Strata 引擎刚支持 AMD 7900XTX 时,跑 IQ3_S 量化:

Prefill 阶段的瓶颈是矩阵乘法 kernel 的效率。Strata 默认的 hipBLAS 路径对 RDNA3 不够优化。

解法:搬 vLLM 的 WMMA kernel

vLLM 上有针对 RDNA3 的专用 WMMA(Wave Matrix Multiply Add)kernel,这是针对 AMD GPU 的硬件矩阵单元做深度优化的。

把这个 kernel 从 vLLM 搬到 Strata,效果立竿见影:prefill 从 700 多 → 1300+,decode 也从 40 提升到 50。

几个容易被忽视的细节

  1. 专家权重在 RAM 缓存:这个引擎的专家基本都在 RAM 缓存,支持 CPU/GPU 混合计算,所以会看到一个奇怪现象——短上下文的 prefill 比长上下文还低。主要是 VRAM caching 构建中的摩擦成本,模型越用越快。
  2. PCIe 带宽是 prefill 瓶颈:作者双卡 7900XTX PCIe x8 拆分,拔了第二张卡后主卡自动获得 PCIe x16,prefill 涨了 30%,decode 涨了 10%。
  3. 12GB 的 5070 和 24G 的 7900XTX decode 一样快:因为 5070 是 PCIe 5.0 x16,带宽优势补足了显存差距。

启动命令

cd path/to/Strata
HIP_VISIBLE_DEVICES=0 PYTHONUNBUFFERED=1 \
  ~/.config/strata/venv/bin/python -m serve.server \
  --engine strata --config serve.json --port 8080

一句话

"找个趁手的 Agent 帮你部署一下就好了"——这句话是认真的。RDNA3 上 Strata 的 prefill 优化,核心就是把 vLLM 的 WMMA kernel 搬过来,思路简单但收益巨大。