《deepseek FlashMLA :高效的 MLA 解码内核》:此文为AI自动翻译
FlashMLA
GitHub - deepseek-ai/FlashMLA
FlashMLA 是适用于 Hopper GPU 的高效 MLA 解码内核,针对可变长度序列服务进行了优化。
当前发布:
- BF16、FP16
- 块大小为 64 的分页 kvcache
快速开始
安装
python setup.py install
基准
python tests/test_flash_mla.py
使用 CUDA 12.8,在 H800 SXM5 上实现高达 3000 GB/s 的内存绑定配置和 580 TFLOPS 的计算绑定配置。
用法
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 及更高版本
- 但我们强烈建议使用 12.8 或更高版本以获得最佳性能
- PyTorch 2.0 及更高版本
确认
FlashMLA 的灵感来自 FlashAttention 2&3 和弯刀项目。
引文
@misc{flashmla2025,
title={FlashMLA: Efficient MLA decoding kernels},
author={Jiashi Li},
year={2025},
publisher = {GitHub},
howpublished = {\url{https://github.com/deepseek-ai/FlashMLA}},
}