网易首页 > 网易号 > 正文 申请入驻

高效Attention引擎是怎样炼成的?陈天奇团队FlashInfer打响新年第一枪!

0
分享至

文章转载于新智元

新年第一天,FlashInfer在arxiv打响第一枪。

作者团队来自华盛顿大学、英伟达、Perplexity AI和CMU,曾开发了TVM、XGBoost,同时也是MXNET作者之一的陈天奇,也位列其中。

论文地址:https://arxiv.org/abs/2501.01005

FlashInfer实现了高效的注意力引擎,利用块稀疏和可组合格式来解决KV cache存储异构问题,优化了内存访问并减少冗余。

它还提供了可定制的注意力模板,通过即时编译(JIT)来适应各种Attention的设置。

另外,FlashInfer的负载平衡调度算法,可以根据用户请求的动态变化进行调整,同时又能够与静态配置的CUDAGraph保持兼容。

虽然论文是刚放出来,但FlashInfer早已实际应用到SGLang、vLLM和MLC-Engine等流行的LLM Serving框架中。

实测表明,FlashInfer能够在各种推理场景中显著提升内核性能。

与最先进的解决方案相比,FlashInfer将token间延迟降低了29%-69%,将长上下文推理的延迟降低了28%-30%,使并行生成的速度提高了13%-17%。

「对如何在LLM Serving框架中构建高效且可定制的注意力引擎感到好奇吗?快来看看Flashlnfer的最新论文吧,了解所有酷炫的想法。」

1

高效注意力引擎是怎样炼成的

LLM推理现状

原始Transformer本身的计算很简单,但要更好的为人民服务,就需要解决许多工程上的问题。

实际应用中,服务端会面临多样的工作负载,还有个性化的Attention实现,要满足延迟吞吐量等指标,又要能够充分发挥硬件的能力。

比如,LLM的推理可以分类为下面三种情况:

Prefill阶段拿到最开始的Prompt,填充kv cache;Decode阶段则是一个query计算出一个输出;存在多轮对话或者使用投机推理(Speculative Decoding)时,又可以有多个query向量并行计算。

不同的输入带来了不同的计算访存比,给GPU的利用造成麻烦。

另一方面,当今流行的不同框架和方法在存储kv cache时,存在很大差异。

比如vLLM使用的Paged Attention,参照操作系统中分页管理内存的方式,将kv cache切成一个个block,逻辑上连续而物理上不连续。

而SGLang采用的Radix Attention是一棵前缀树,不同query共享的kv cache(比如系统提示)存储在同一个节点。

再看Speculative Decoding,多个草稿小模型生成的token序列通常组织成token tree的形式,表示成矩阵时是稀疏的。

还有下面这种,通过重要性计算只选择topk个kv cache参与Attention计算,同样是稀疏矩阵的形式。

个性的Attention这么多,框架想要满足所有人的要求,kv cache应该怎么存储?

块稀疏格式出马

作者表示,所有这些都可以抽象成块稀疏(Block Compressed Sparse Row,BSR)矩阵。

BSR跟通常用来存储稀疏矩阵的CSR(Compressed Sparse Row)很像,如下图所示,CSR只需存储矩阵元素的非零值、在行中的下标、以及每行的偏移。

——但是这么稀碎的存储格式对显卡来说很不友好,于是做一些改进:

相同的存储方式,对应到BSR,只需将操作的最小单元由元素(单个数据)换成Block(一块数据),块大小为(Br,Bc)。

这样一来,显卡就可以直接加载整块的数据(比如16 * 16),来填满自己的tensor core,进行矩阵乘法。

有了BSR,我们再来看下之前提到的几种Attention。

Paged Attention的block可以直接对应到BSR的block,如下图所示,让Bc = 1。而query tile size(Br)设为4保证矩阵乘法的硬件利用率。

再看本身是树结构的Radix Tree和Token Tree,表示成矩阵时相当稀疏的,如果BSR使用比较大的方块(比如16 * 16)会造成很大的浪费。

此时可以设置Bc = 1,如下图所示,再使用合适的向量长度,就可以消除大部分的冗余,同时显卡也支持下图这种形式的稀疏计算。

有研究表明,稀疏的矩阵只需让最后一维保持连续,即可享受到tensor core的加速。

在FlashInfer中,系统从global memory中加载稀疏块数据,并在shared memory中将其排布成密集格式,tensor core可以直接计算这些数据,不会产生硬件的浪费。

块并行与可组合

另外,FlashInfer采用与Block-Parallel Transformer (BPT)相同的形式分解kv cache(同时也是RingAttention和Flash-Decoding的实现依据)。

对于相同的query,需要计算的完整kv cache被分块,每块的Attention计算可以独立(并行)进行,只需记录一个统计量(这里是LSE),用于最后的汇聚。

学会这个之后,再来看一下FlashInfer提供的可组合特性,当query之间存在可共享的kv cache时,可以把存储表示成不同大小block的组合。

能够共享的部分使用大的block,让请求可以通过shared memory访问;不能共享的部分使用小的block,在global memory中访问。

拿捏定制化Attention

作者为FlashAttention开发了CUDA/CUTLASS模板,专为密集矩阵和块稀疏矩阵设计,兼容从Turing到Hopper架构的英伟达GPU。

其中,FlashAttention2用于Ada(sm89)之前的架构,FlashAttention3用于Hopper架构。

实现的主要改进包括:增强将稀疏块加载到共享内存中的能力、扩展块大小配置、针对分组查询注意力(GQA)优化内存访问模式、以及可自定义的注意力。

下面就说一下这个可自定义的注意力。

我们实际中接触到的各种LLM,会在算子中实现自己个性化的部分。受FlexAttention启发,FlashInfer提供了在Attention计算的不同阶段插入自定义函数的机制。

比如下面这个用于大模型位置编码的ALiBi,可以利用FlashInfer提供的接口轻松实现。

还有Gemma和Grok需要的Logits SoftCap、常见的RoPE位置编码、滑动窗口注意力机制等,都可以通过这种方式无痛解决。

数据移动

FlashInfer的注意力模板支持任意的块大小,由于块可能与张量核心形状不对齐,所以需要专门的数据加载方法,也就是前面讲过的,将tiles从分散的全局内存转移到连续的共享内存。

单个MMA指令可以指定可以块稀疏矩阵中的不同块作为Tensor core的输入,下图展示了FlashInfer如何将tiles加载到共享内存中:

对于稀疏的KV-Cache,地址使用BSR矩阵的indices数组计算;而密集的KV-Cache地址使用row index仿射变换。

KV-Cache的最后一个维度保持连续(也就是head_size),以适应GPU缓存行大小的合并内存访问。这里使用宽度为128B的异步复制指令LDGSTS来最大化内存带宽。

尽管Hopper架构中的TMA(Tensor Memory Accelerator)可以进一步加速数据移动,但它不支持非仿射内存访问模式,所以只在连续的情况下使用TMA。

另外,为了适应不同的计算访存比,FlashInfer提供具有不同块大小的FlashAttention2内核,并根据硬件资源和工作负载强度来选择合适的尺寸。

负载均衡

下图展示了FlashInfer运行时调度程序的工作流程。

Attention kernel不会直接产生最终输出,因为一些长KV被分成了多个chunk,每个chunk的部分输出存储在用户提供的工作区缓冲区中,最终输出需要所有chunk进行聚合。

FlashInfer实现了高效的注意力合成算子,可以处理变长聚合。每个CTA的工作队列,以及部分输出与最终输出之间的映射,都由调度程序规划。

先由CPU计算规划信息,之后FlashInfer会将计划信息异步复制到GPU工作区缓冲区的特定区域,用作注意力内核的输入。

FlashInfer保证Attention和contraction内核与CUDAGraph兼容。二者都使用持久内核,并且编译后网格大小是固定的,这意味着内核在每个生成步骤中都以相同的网格大小启动。

作者为工作区缓冲区的每个部分设置了固定偏移量,以存储部分输出和计划信息,确保传递给内核的指针对于每个生成步骤都是相同的,满足CUDAGraph的要求。

参考资料:

https://arxiv.org/abs/2501.01005

https://x.com/tqchenml/status/1875123214919328039

点个“爱心”,再走吧

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
沙特:若对伊开战将启动巴基斯坦核保护伞

沙特:若对伊开战将启动巴基斯坦核保护伞

Nee看
2026-03-25 19:07:00
特朗普杀了他全家!他会当伊朗张学良吗?

特朗普杀了他全家!他会当伊朗张学良吗?

乌鸦校尉
2026-03-25 18:19:47
马筱梅眼含泪水回应!买房真因不是自私,汪小菲第一次和张兰同队

马筱梅眼含泪水回应!买房真因不是自私,汪小菲第一次和张兰同队

潮鹿逐梦
2026-03-24 13:13:55
研究所所长猥亵下属后续,女主多张高清照曝光,知情人再爆料

研究所所长猥亵下属后续,女主多张高清照曝光,知情人再爆料

观察鉴娱
2026-03-26 09:25:28
不得不说,面相真的能看出一个人的路子。停播快两个月的李亚鹏,

不得不说,面相真的能看出一个人的路子。停播快两个月的李亚鹏,

小光侃娱乐
2026-03-26 17:05:03
为什么只有革命卫队与美以干,而伊朗40万国防军沉默观战?

为什么只有革命卫队与美以干,而伊朗40万国防军沉默观战?

廖保平
2026-03-17 09:04:38
连蔡依林都在玩,“雪山救狐狸”到底是什么梗?对话视频原创作者:最初只是为了卖酱板鸭,特意设置反转剧情,没想到会这么火

连蔡依林都在玩,“雪山救狐狸”到底是什么梗?对话视频原创作者:最初只是为了卖酱板鸭,特意设置反转剧情,没想到会这么火

极目新闻
2026-03-25 19:37:57
露出了狐狸尾巴?朱立伦主动邀约国民党“立委”,或为逼宫郑丽文

露出了狐狸尾巴?朱立伦主动邀约国民党“立委”,或为逼宫郑丽文

承受之重
2026-03-25 12:45:53
1981年,彭真狱中见江青,江青出言不逊提出:我要见华国锋邓小平

1981年,彭真狱中见江青,江青出言不逊提出:我要见华国锋邓小平

微野谈写作
2026-01-27 06:00:03
人情薄如纸!丈夫住院100天沒人探望,出院当天大伯突然打来电话

人情薄如纸!丈夫住院100天沒人探望,出院当天大伯突然打来电话

水泥土的搞笑
2026-03-26 17:37:27
15战14胜,加时掀翻东部第一!新鹰王27+8+12证明贱卖特雷杨有理

15战14胜,加时掀翻东部第一!新鹰王27+8+12证明贱卖特雷杨有理

锅子篮球
2026-03-26 11:25:55
充电桩市场价格战惨烈!每度电服务费收三毛 利润只有4分钱

充电桩市场价格战惨烈!每度电服务费收三毛 利润只有4分钱

快科技
2026-03-24 00:22:40
江苏拟建一条过江通道,或将再破“世界纪录”

江苏拟建一条过江通道,或将再破“世界纪录”

水泥土的搞笑
2026-03-26 14:04:59
到底是谁让马景涛穿这身衣服的?简直是灾难现场!

到底是谁让马景涛穿这身衣服的?简直是灾难现场!

西楼知趣杂谈
2026-03-25 23:41:24
美军发布战果,摧毁中国产战机,伊朗空军损失殆尽

美军发布战果,摧毁中国产战机,伊朗空军损失殆尽

爱吃醋的猫咪
2026-03-22 22:29:08
利空突袭,全线杀跌!

利空突袭,全线杀跌!

中国基金报
2026-03-26 13:16:51
周杰伦的INS被网友冲爆,新歌MV里手表调到“83”,疑用旧恋情炒作卖新唱片

周杰伦的INS被网友冲爆,新歌MV里手表调到“83”,疑用旧恋情炒作卖新唱片

回旋镖
2026-03-25 20:38:44
延寿9年,心脏病风险降60%!悉尼大学最新:饮食、睡眠、运动最佳组合出炉,小改变也大有益

延寿9年,心脏病风险降60%!悉尼大学最新:饮食、睡眠、运动最佳组合出炉,小改变也大有益

医诺维
2026-03-24 17:02:18
广东:力争到2026年底 建成50个以上特色鲜明、功能突出的生产性服务业集聚区

广东:力争到2026年底 建成50个以上特色鲜明、功能突出的生产性服务业集聚区

财联社
2026-03-26 10:15:09
中国军事专家送日本3句话,太绝了,真不是吓唬他们

中国军事专家送日本3句话,太绝了,真不是吓唬他们

安安说
2026-03-26 11:21:19
2026-03-26 20:03:00
硅星人 incentive-icons
硅星人
硅(Si)是创造未来的基础,欢迎来到这个星球。
2960文章数 10473关注度
往期回顾 全部

科技要闻

Meta高管狂分百亿期权,700名员工却下岗

头条要闻

张雪峰留巨额遗产:二婚妻子或拿50% 剩下的女儿占1/3

头条要闻

张雪峰留巨额遗产:二婚妻子或拿50% 剩下的女儿占1/3

体育要闻

申京努力了,然而杜兰特啊

娱乐要闻

刘晓庆妹妹发声!称姐姐受身边人挑拨

财经要闻

油价"驯服"特朗普?一到100美元就TACO

汽车要闻

一汽奥迪A6L e-tron开启预售 CLTC最大续航815km

态度原创

家居
数码
房产
本地
公开课

家居要闻

傍海而居 静观蝴蝶海

数码要闻

1+4核,英特尔酷睿3 304处理器现身基准测试

房产要闻

突发,三亚又有大批征迁补偿方案出炉!

本地新闻

救命,这只酱板鸭已经在我手机复仇了一万遍

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版