你买了一台性能很强的显卡,却发现模型里的关键计算没有合适的底层程序,就像高速公路修到了门口,最后一公里仍是土路。FlashKDA要补的正是这段路:MoonshotAI把Kimi Delta Attention(KDA)对应的GPU内核单独开源,希望让这种非标准注意力结构更充分地利用GPU。值得注意的是,目前关于它的功能与效果描述均来自MoonshotAI官方仓库,尚无独立基准或第三方复现。
它补的不是新公式,而是底层实现
注意力机制让模型处理当前内容时,有选择地读取序列中其他位置的信息。它是Transformer的核心计算之一,也是长上下文计算成本的重要来源。
Delta Attention则是一类注意力变体。它通过增量更新内部状态来组织序列信息。公式能否工作是一回事,能否在GPU上高效运行是另一回事。后者需要专门的GPU内核——也就是在显卡上并行执行的底层计算程序。同一套模型公式换一种内核实现,实际速度、显存占用和硬件适配都可能明显不同。
FlashKDA就是KDA的专用CUDA内核项目。MoonshotAI称其为“high-performance KDA kernels”,并使用CUTLASS构建。CUTLASS是NVIDIA提供的CUDA矩阵计算模板库,开发者可以用它组合针对特定数据布局和GPU架构优化的内核。简单说,FlashKDA没有提出另一种注意力,而是在把已有计算方式翻译成更贴近GPU硬件的程序。
接入方式已经做得相当直接
据MoonshotAI仓库,FlashKDA安装后可以由flash-linear-attention中的chunk_kda自动分派调用,所需版本为flash-linear-attention >= 0.5.0。如果运行条件不匹配,开发者也能查看后端为何拒绝分派;设置FLA_FLASH_KDA=0,则可主动回退到Triton实现路径。Triton在这里是另一条GPU内核实现路径。
项目目前要求NVIDIA SM90及以上架构、CUDA 12.9及以上,以及PyTorch 2.4及以上。仓库给出的编译架构示例包括90a和100a,但这不等于所有较新GPU都已得到验证,实际兼容性仍要看构建配置与测试范围。
输入输出方面,当前固定要求。initial_state和final_state支持bf16或fp32:前者是较省存储的数值格式,后者精度更高。项目还可通过int64 cu_seqlens描述不同长度的序列,以处理变长批次。仓库同时列出了有无cu_seqlens时不同的批次与状态张量布局约束。
为什么这类开源值得关注?
模型研究常把注意力放在架构和参数规模上,但部署时,底层内核决定了公式能否真正跑顺。非标准注意力结构尤其如此:如果只有数学定义,没有适配硬件的实现,工程团队还要自行补齐关键一层。FlashKDA把这部分独立开源,并接入现有的flash-linear-attention调用路径,降低了其他开发者试用和集成KDA的门槛。
MoonshotAI还在2026年4月22日发布了介绍FlashKDA v1设计决策的Deep-Dive Blog。不过,本次供稿没有提供博客正文,因此不能进一步判断它具体采用了哪些优化策略。
局限与未知
- 仓库没有在本次材料中给出吞吐量、延迟、加速倍数或显存占用数据,因此目前不能量化它比其他实现快多少。
- 仓库称正确性测试可与Torch参考实现“精确匹配”,并与
flash-linear-attention比较;这一说法尚无第三方复现,材料也未说明误差口径。 - 当前及较新的软硬件要求限制了适用范围;完整GPU兼容矩阵也未披露。