https://github.com/deepseek-ai/FlashMLA
FlashMLA
FlashMLA 是针对Hopper架构GPU优化的高效MLA解码内核,专为变长序列服务场景设计。
当前已发布特性:
- BF16支持
- 分页式kvcache(块大小为64)
快速入门
安装
python setup.py install
性能测试
python tests/test_flash_mla.py
在H800 SXM5(CUDA 12.6环境)上实现内存受限配置下3000GB/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及以上版本
- PyTorch 2.0及以上版本
致谢
FlashMLA的设计灵感来源于FlashAttention 2&3以及cutlass项目。