deepseek-ai/FlashMLA
FlashMLA: Efficient Multi-head Latent Attention Kernels
解决的问题
FlashMLA 提供高度优化的注意力算子,旨在加速大语言模型的推理和预填充(prefilling)阶段,特别是为 DeepSeek-V3 和 V3.2 模型提供支持。它通过为密集(dense)和稀疏(sparse)注意力模式提供专门的实现,解决了 Multi-head Latent Attention (MLA) 的计算瓶颈。
工作原理
该库实现了针对不同 GPU 架构(SM90 和 SM100)及运行模式定制的多种注意力算子:
- 稀疏注意力算子 (Sparse Attention Kernels):这些算子实现了 DeepSeek Sparse Attention (DSA),允许模型在预填充和解码阶段仅针对特定 Token(通过
indices张量)计算注意力。解码算子在进行 bfloat16 计算的同时,利用 FP8 KV cache 来减少内存开销。 - 密集注意力算子 (Dense Attention Kernels):为预填充和解码提供标准的密集注意力实现。
- 硬件优化:算子针对 NVIDIA H800 和 B200 GPU 进行了优化,利用特定的架构特性实现高 TFlops 性能。
适用对象
本项目面向使用 DeepSeek 模型的 AI 研究人员和工程师,以及需要在高端 NVIDIA GPU 上实现最大硬件利用率和推理速度的 Multi-head Latent Attention (MLA) 实现者。
亮点
- 高吞吐量:在 B200 GPU 上,密集 MLA 解码可达到高达 660 TFlops,稀疏 MLA 预填充可达到 1450 TFlops。
- FP8 KV Cache 支持:通过使用带有缩放因子的量化 FP8 格式,减少稀疏解码期间的内存占用。
- Token 级稀疏性:支持选择性 Token 注意力,以优化预填充和解码阶段的计算。
- 广泛的硬件支持:针对 SM90 和 SM100 架构进行了优化,并为其他各种 GPU 加速器提供了社区移植版本。
相关
- 项目
- 项目
- 项目
- 项目
- 项目