strata-magic/hero.jpg" alt="Strata 魔改 WMMA Kernel 原理示意">
Strata 刚支持 7900XTX 时 prefill 才 700 多,把 vLLM 上的专用 WMMA kernel 搬过来,prefill 直接干到 1300+。
背景
Strata 引擎刚支持 AMD 7900XTX 时,跑 IQ3_S 量化:
- Decode:55 t/s(还不错)
- Prefill:700 多(差点意思)
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。
几个容易被忽视的细节
- 专家权重在 RAM 缓存:这个引擎的专家基本都在 RAM 缓存,支持 CPU/GPU 混合计算,所以会看到一个奇怪现象——短上下文的 prefill 比长上下文还低。主要是 VRAM caching 构建中的摩擦成本,模型越用越快。
- PCIe 带宽是 prefill 瓶颈:作者双卡 7900XTX PCIe x8 拆分,拔了第二张卡后主卡自动获得 PCIe x16,prefill 涨了 30%,decode 涨了 10%。
- 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 搬过来,思路简单但收益巨大。