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 加速器提供了社区移植版本。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目