mcpField
M
mla-analysis

mla-analysis

github.com/pepperu96开发081 次安装32 周前更新
代码仓库

关于 mla-analysis

用于分析 MLA 注意力内核计算与内存成本的参考技能,帮助内核开发者依据成本模型和历史测量比较解码、推测解码与预填充场景。

主要功能

  1. 01解码、推测解码与预填充场景指导
  2. 02FlashAttention 与 FlashMLA 成本模型
  3. 03MLAvar6+ 分拆缓存模型
  4. 04潜空间吸收计算公式
  5. 05张量形状与布局

适用场景

  1. 01按序列长度选择内核
  2. 02估算计算与内存成本
  3. 03选择 MLAvar6+ 缓存拆分比例
  4. 04审阅历史基准测试背景

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pepperu96/hyper-mla --skill mla-analysis

安装后在 Claude Code 中输入/mla-analysis确认已加载。

详细介绍

MLA 成本分析与运行状态指南

运行状态选择

运行状态s 范围最佳内核原因
解码s=1FlashMLA相较 FlashAttention,延迟降低 16 倍(压缩 KV)
推测解码s=2-32MLAvar6+ 或 FlashMLAMLAvar6+ 应能胜过 FlashMLA 和 FlashAttention
预填充s>128FlashAttention避免潜空间计算带来的 4 倍 FLOP 开销

性能交叉点:对于 DeepSeek-V3 参数,s 约为 16-32 时,FlashAttention 的速度会超过 FlashMLA。

成本模型(类似 DeepSeek-V3:h=128,d=128,k=512,p=64)

FlashAttention
  • FLOP:2bhst(2d + p) = 2bhst * 320
  • 字节数:w * bh(s+t)(2d + p) = w * bh(s+t) * 320
  • s=1 时:AI ≈ 1 FLOP/字节(严重受内存限制)
  • s=1024 时:AI ≈ 819 FLOP/字节(严重受计算限制)
FlashMLA(通过吸收实现潜空间注意力)
  • FLOP:2bhst(2k + p) = 2bhst * 1088
  • 字节数:w * (bhs(2k+p) + bt(k+p))
  • s=1 时:AI ≈ 228 FLOP/字节(即使在解码时也受计算限制)
  • 问题:k=512 时,FLOP 随 s 线性增长,而非使用 d=128 ——每个 token 的 FLOP 多 3.4 倍
MLAvar6+(拆分潜空间与解压数据)
  • FLOP:2bhstp + 4bhsnd + 4bhsok
  • 字节数:w * (bhsp + bhsd + bhsk + bok + btp + bhnd + bhnd + bhsd + bhsk)
  • 关键点:选择 n 可将运算强度调至接近屋顶线拐点

吸收技巧(FlashMLA)

Score:  Q @ K^T = Q @ (Z @ Wk)^T = (Q @ Wk^T) @ Z^T = Qz @ Z^T
Value:  softmax(A) @ V = softmax(A) @ (Z @ Wv) = (softmax(A) @ Z) @ Wv

完全在潜空间(k 维)中运算,输出解压 O_latent @ W_kvb2^T 则由单独的内核完成。

MLAvar6+ 设计

将 KV 缓存拆分为:

  • o 个旧 token:潜变量 Z(b, o, k)——计算密集、带宽需求低
  • n 个新 token:解压后的 K,V(b, n, h, d)——带宽密集、计算需求低
  • t = o + n

在两者之间插值:n=0 → 类似 FlashMLA,o=0 → 类似 FlashAttention。

历史基准(RTX 5090,b=32,t=4096,bfloat16)

注意:这些结果来自 RTX 5090 开发阶段。将其用作优化目标前,请在当前设备上重新进行性能分析。不同设备的拐点、带宽和计算上限各不相同——参见 src/mla_var3/conf/devices.json。

配置FlashMLAFlashAttentionMLAvar6+ V3(最佳)
s=1419 μs6,781 μs829 μs(V2)
s=165,161 μs6,727 μs4,444 μs

MLAvar6+ V3 目前在推测解码(s=16)方面表现最佳,比 FlashMLA 快 14%。

张量形状(DeepSeek-V3 默认值)

符号描述默认值
b批量大小64
h注意力头数量128
s查询序列长度可变
tKV 上下文长度4096
d头维度128
p位置嵌入维度64
k潜空间(压缩后)维度512

张量布局:

  • Q, Qc:[B, H, S, D] 或 [B, H, S, K]
  • K, V:[B, T, H, D](已解压)
  • Z:[B, T, K](潜空间 KV 缓存)
  • QPE, KPE:[B, H, S, P] 或 [B, T, P]

详细分析

完整的成本模型推导和屋顶线分析:docs/cost-analysis.md

评论

支持 Markdown