DeepSeek 启动 “开源周”,发布高效 MLA 解码内核 FlashMLA
FlashMLA 开源发布
2 月 24 日消息,DeepSeek 今日启动 “开源周”,首个开源的代码库为 FlashMLA—— 针对 Hopper GPU 优化的高效 MLA 解码内核,专为处理可变长度序列而设计。据介绍,FlashMLA 的灵感来自 FlashAttention 2&3 和 cutlass 项目。
需求与安装
FlashMLA 需要以下环境:
- Hopper GPU
- CUDA 12.3 及以上版本
- PyTorch 2.0 及以上版本
安装步骤:
python setup.py install
性能测试
使用以下命令进行基准测试:
python tests/test_flash_mla.py
在使用 CUDA 12.6 和 H800 SXM5 的内存受限配置下,FlashMLA 可达到 3000 GB/s 的带宽;在计算受限配置下,可达到 580 TFLOPS 的算力。
使用示例
以下是 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,
)
引用方式
如果您在研究中使用了 FlashMLA,请引用以下文献:
@misc{flashmla2025,
title={FlashMLA: Efficient MLA decoding kernel},
author={Jiashi Li},
year={2025},
publisher = {GitHub},
howpublished = {\url{https://github.com/deepseek-ai/FlashMLA}},
}
结论
DeepSeek 启动 “开源周”,并发布了针对 Hopper GPU 优化的高效 MLA 解码内核 FlashMLA。该内核专为处理可变长度序列而设计,灵感来自 FlashAttention 2&3 和 cutlass 项目。FlashMLA 在内存受限配置下可达到 3000 GB/s 的带宽,在计算受限配置下可达到 580 TFLOPS 的算力。用户可以通过简单的安装和使用步骤,快速集成并测试该内核。此次开源发布不仅为开发者提供了强大的工具,也促进了社区的技术交流与合作。