MLA
DeepSeek开源FlashMLA:把H800榨到极限的解码内核
2025年2月24日,今天上午万众瞩目的DeepSeek开源了他们连发五天的第一个项目——一个叫FlashMLA的东西,不到半小时GitHub就涨了300多Star,我也硬着头皮把它啃了一遍。
开源地址在此:https://github.com/deepseek-ai/FlashMLA,几个关键参数和Star的增速我都顺手记了下来。核心的一句话是:
"FlashMLA is an efficient MLA decoding kernel for Hopper GPUs, optimized for variable-length sequences serving."
翻译过来就是:FlashMLA是一款面向Hopper GPU的高效MLA解码内核,并针对可变长度序列的服务场景进行了优化。
因为确实比较硬核,我只能用自己仅有的知识梳理一遍,可能会有错,不保证对。
把这句话拆开看。第一,"MLA decoding kernel"。这里的MLA指的是Multi-head Latent Attention,多头潜在注意力,DeepSeek降低成本的王炸,反正它是个专门用在解码阶段的注意力加速器。大模型有两个主要阶段:训练(包括prefill)和推理解码。在解码阶段,我们往往要一次次把KV缓存拿出来反复计算,序列一变长,这部分开销就会爆炸式增长。能在解码阶段有更强的核去优化,意味着大模型可以更快地产出结果,对长上下文对话这种场景尤其关键。
第二,"for Hopper GPUs"。英伟达的卡有几个架构。A是Ampere架构(2020年发布),NVIDIA的第七代GPU架构,主打通用计算和高性能AI训练推理,典型代表是A100;H是Hopper架构(2022年发布),第九代架构(跳过了第八代),目前最新的,专为超大规模AI和超算设计,显著优化了Transformer模型性能,典型的就是H100,不过因为国内的限制,能用到的都是阉割版的H800。所以就能明白,FlashMLA是DeepSeek专门针对H800这一代高端加速卡做的深度优化。他们在release note里说跑在H800上能达到"3000 GB/s memory-bound & 580 TFLOPS compute-bound",等于在内存带宽和浮点算力两方面都拉到了极限,基本已经是我见过的最逼近巅峰的了。
他们在致谢里写了灵感来自FlashAttention,我就去翻了下那个项目:相比FlashAttention-2,FlashMLA接近翻了2倍,甚至跟FlashAttention-3都快差不了多少,而人家是针对H100优化的,DeepSeek是针对H800优化的。
第三,"optimized for variable-length sequences"。就是说它不光适合固定batch,还对那种"每个人输入长度不一样、随时变更token长度"的场景特别好。就大模型的实际应用而言,用户输入并不规则,随时来个长上下文对话,或者甩过来一个超长PDF,这就需要内核支持动态序列,同时还能保持高效,而这块DeepSeek也做了大幅的优化,目前整体上开箱即用。
DeepSeek这是真的把自己最牛逼的东西开源出来了,这尼玛,才是真正的OpenAI啊。想起来了他们前几天发的论文《Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention》,整个目标也是异曲同工。如果说FlashMLA是针对推理解码做的"终极性能爆破",那Native Sparse Attention就是对训练和推理做更全面的"稀疏化改革"。两者结合到一起,意思就是DeepSeek在告诉你:无论训练还是推理,我都要把硬件榨干,要做就做最猛的AI。
对整个AI生态来说,这是一件天大的好事,特别是国内。越多的开源优化,意味着以后国内的开发者在高效注意力、稀疏推理、长上下文训练等方面都能取得突破,不用像过去那样闭源大厂独家享受。如果是小白或者纯产品经理,可以把这件事情理解成:苹果又给iPhone做了一块专门调教的GPU,所以游戏跑得更爽了;只不过这次是DeepSeek在给AI大模型做专门的GPU调教,把H800的极限性能都薅出来,换来更快的推理和训练速度,这是妥妥的GPU性能红利。
所以我对DeepSeek挺佩服,敢搞硬件极限那一套,敢把论文跟开源项目一起放出来,而且频率这么高。而且这还只是第一天,后面还有四天,不敢想他们还会放出多牛逼的东西。既然没卡、没有资源,那我们自己,就特娘的打下那一片天。
这篇给自己交差的梳理就到这儿。
DeepSeek,你才是真正的源神。