inclusionAI/cuLA

CUDA kernels for linear attention variants, written in CuTe DSL and CUTLASS C++.

解决的问题

cuLA 解决了长上下文 LLM 工作负载中线性注意力机制的性能瓶颈。虽然线性注意力将标准注意力的二次复杂度降低为线性时间更新,但在现代 GPU 上高效实现这些机制需要深度的硬件级优化,以充分利用最新 NVIDIA 架构的计算能力。

工作原理

cuLA 提供了使用 CuTe DSL 和 CUTLASS C++ 编写的手动调优 CUDA 内核。它实现了线性注意力的高性能变体,包括 GLA、KDA、GDN 和 Lightning Attention。这些内核专门针对 NVIDIA Blackwell (SM10X) 和 Hopper (SM90) GPU 进行了优化,利用 WGMMA 数据流和持久打包调度(persistent packed scheduling)等特性,在 prefill 和 decode 阶段均实现吞吐量最大化。

适用对象

专为处理长上下文 LLM 且需要在 NVIDIA Hopper 或 Blackwell 硬件上获得最大推理和训练性能的 AI 研究人员和工程师设计。它还旨在作为 flash-linear-attention (FLA) 库的高性能后端。

亮点

  • 硬件优化:专门针对 NVIDIA Blackwell (SM100X) 和 Hopper (SM90) 架构进行了调优。
  • 显著加速:展示了相较于 FLA Triton 实现的巨大性能提升,包括在 Hopper 上 FlashKDA prefill 实现高达 7.56 倍的加速。
  • 广泛的算法支持:实现了多种线性注意力变体,如 KDA (Kimi Delta Attention) 和 Lightning Attention。
  • 无缝集成:设计为只需简单的 import 更改即可直接替换 FLA 内核。

相关

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