很荣幸与大家分享 FlashMLA - 我们为 Hopper GPU 开发的高效 MLA 解码内核,针对可变长度序列进行了优化,目前已投入生产。 1:BF16 支持,2:分页 KV 缓存(块大小 64),3: H800 上内存受限 3000 GB/s,计算受限 580 TFLOPS。
在 GitHub 上探索:https://github.com/deepseek-ai/FlashMLA
用法:
from flash_mla import get_mla_metadata, flash_mla_with_kvcache
tile_scheduler_metadata, num_splits = get_mla_metadata(cache_seqlens, s_q * h_q // h_kv, h_kv)
for i in range(num_layers):
...
o_i, lse_i = flash_mla_with_kvcache(
q_i, kvcache_i, block_table, cache_seqlens, dv,
tile_scheduler_metadata, num_splits, causal=True,
)
...
要求:
-
Hopper GPU
-
CUDA 12.3 及更高版本
-
PyTorch 2.0 及更高版本