TileRT稀疏MLA实现原理:FlashSparseMLA与TopK近似索引让长上下文不再拖慢解码
【免费下载链接】TileRTTile-Based Runtime for Ultra-Low-Latency LLM Inference项目地址https://gitcode.com/gh_mirrors/ti/TileRT点击查看免费下载TileRT 是一款面向超低延迟 LLM 推理的 Tile 级运行时。本文拆解它最有代表性的稀疏 MLAMulti-head Latent Attention实现用 TopK 近似索引先筛出关键位置再用 FlashSparseMLA 只对这些位置做注意力让百万 token 的长上下文不再拖慢逐 token 解码。为什么长上下文解码会拖慢LLM 解码是逐 token 串行的每生成一个 token都要对所有层的 KV Cache 做一遍注意力。全量注意力的计算量和显存读取量都随上下文长度线性增长——上下文从 1K 涨到 1M注意力部分要读的数据量就是原来的 1000 倍。TileRT 的解法来自 DeepSeek-V3.2 / GLM-5 的稀疏注意力思想DSA不要每个历史位置都看用一个轻量索引器给所有历史 token 打分只取最相关的 2048 个位置index_topk 2048见 tilert/models/deepseek_v3_2/model_args.py。KV Cache 本身也小MLA 把 KV 压成低秩表示kv_lora_rank 512配合独立的低维索引缓存index_head_dim 128单 token 的缓存体积远低于传统 GQA。于是扫 100 万个位置变成打分 100 万个位置很便宜 只读 2048 个位置很快。三步流水线从打分到稀疏注意力整条链路由三个自定义算子完成核心源码在 tilert/models/deepseek_v3_2/ops/ 目录下。第 1 步Indexer 计算相关性得分解码时当前 token 会生成一组索引 query与每个历史位置的索引缓存点积得到一条覆盖全部上下文的得分向量IDX_LOGITS形状约为[1, seq, max_seq_lenpad]。这一步由 sparse_index.py 中的sparse_index完成输入是 bf16 的 q/kv/weights得分以 fp32 累加索引头配置为 64 头 × 128 维——维度很小所以即使上下文达到百万级打分本身也很廉价。更进一步sparse_index_topk 把打分 取 TopK融合进一个 kernel省掉了中间得分向量的往返读写。第 2 步TopK 近似索引筛出 2048 个位置在几十万上百万个得分中挑出前 2048 名如果对每个 token、每层都做一次全量排序排序本身就会成为新瓶颈。TileRT 在 topk.py 中提供了两条路径topk_approximate近似 TopK kernel固定topk2048用分桶近似的思路快速定位候选位置延迟稳定且极低适合解码热路径topk_accurate精确 TopK支持topk ∈ {512, 1024, 2048}并带ratio压缩因子用于 token 维度的下采样。两者由 TopK 模块统一封装use_approximate开关一键切换同时保留了 PyTorch 原生topk的参考实现用于数值校验。第 3 步FlashSparseMLA 只算被选中的位置拿到 2048 个位置索引后真正的 MLA 注意力就只对它们计算。flash_sparse_mla.py 中的flash_sparse_mla有几个关键设计分片计算split-KKV 方向按split_size64切块2048 个位置正好分成最多 32 个 split各 split 独立算出部分输出output_acc和 log-sum-exp 归一化项lse_accLSE 归并融合由 FlashSparseMLACombine 模块把 32 个部分结果按对数归一化精确归并得到与全量注意力数值一致的结果bf16mma计算内核原生支持 MTP算子直接接受seqlen4的批量输入解码 1 token 3 个草稿 token稀疏 MLA 与多 token 预测零成本叠加模块同时提供golden_forward参考实现方便在 Tile 级 kernel 与标准 einsum 实现之间对拍验证。多 GPU 如何保持索引步调一致TileRT 把 128 个注意力头切到 8 张 GPU 上并行但 TopK 选出的位置索引必须在所有卡上一致。协作方式很直接GPU 0 使用 SparseSelectMlaV2额外挂有索引器投影ProjxWis负责算分、选 TopK 并持有三个缓存——ki_cache索引 KV、kv_cache低秩 KV、pe_cache位置编码见 get_cache_vars其余 GPU 使用 PureMlaV2通过 broadcast_selected_token_ids / receive_selected_token_ids 两个 P2P 算子把[1, S, 2048]的 int32 索引以写缓冲区 同步 flag的方式从 GPU 0 直达对端再对各自负责的头部分片做稀疏 MLA最后经 AllReduce 合并。整层逻辑61 层的 DSA 堆叠、临时变量布局IDX_SCORES → IDX_LOGITS → IDX_SELECTS定义在 modules/dsa.pyGLM-5 复用了同一套算子见 tilert/models/glm_5/_dsa_v32/ops/。实测效果1M 上下文的 TPS 还剩多少稀疏 MLA 的收益直接体现在输入越长、衰减越慢。下图是 GLM-5.2/5.3-FP8 在 8× MI350X 上的基准输出固定 1K输入从 1K 拉到 1M——由于注意力只读 2048 个位置生成速度仅从 314 tok/s 缓降到 207 tok/s而叠加 MTP平均接受长度 3.2后 1K 输入可达 648 tok/s。早期版本 GLM-5.1 在 8× B200 上的数据同样验证了这一趋势192K 输入下无 MTP 仍有 169 tok/s开启 MTP 后升至 352 tok/s长尾衰减曲线非常平缓。源码导航功能文件稀疏索引打分 / 打分TopK 融合ops/sparse_index.py近似/精确 TopKops/topk.pyFlashSparseMLA 与 LSE 归并ops/flash_sparse_mla.py索引的跨卡广播/接收ops/broadcast_selected_token_ids.py稀疏/纯 MLA 层组装modules/mla_v2.pyDSA 全模型堆叠modules/dsa.py模型超参topk、序列长度等model_args.py小结TileRT 的稀疏 MLA 实现可以浓缩成一句话用廉价的低维 Indexer 给全部历史打分用 TopK 近似索引以固定 2048 的代价锁定关键位置再用分片 LSE 归并的 FlashSparseMLA 精确算出稀疏注意力。配合 MLA 的低秩 KV 压缩与跨卡索引广播注意力成本与上下文长度基本解耦——这正是 TileRT 能让百万 token 会话保持每秒数百 token 解码速度的关键所在。赞分享【免费下载链接】TileRTTile-Based Runtime for Ultra-Low-Latency LLM Inference项目地址https://gitcode.com/gh_mirrors/ti/TileRT点击查看免费下载相关推荐MiniCPM 2.0 系列技术详解128k 长上下文、MoE 与稀疏化推理实践MiniCPM 2.0 系列技术详解128k 长上下文、MoE 与稀疏化推理实践 MiniCPM 2.0 是 OpenBMB 开源社区在 MiniCPM 1.大模型本地部署模型量化微调LoRA工具调用openBMBAscendKafka稀疏索引实战algorithm-pattern数据索引原理完全讲解Kafka稀疏索引实战algorithm pattern数据索引原理完全讲解 algorithm pattern 是一套算法模板刷题仓库提供最科学的刷题方式教程TileLang 实现 DeepSeek V3.2 稀疏 MLA 全流程Lightning Indexer、Top-k Selector 与稀疏注意力内核实战TileLang 实现 DeepSeek V3.2 稀疏 MLA 全流程Lightning Indexer、Top k Selector 与稀疏注意力内核实战编译器编程语言高性能计算人工智能深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

从一篇个人 Markdown 笔记到可检索语义索引:Khoj 文档接入处理链路实战解析

从一篇个人 Markdown 笔记到可检索语义索引:Khoj 文档接入处理链路实战解析

人工智能AI 应用大模型RAG后端AI Agent 【免费下载链接】khoj Your AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous A…

2026/10/11 4:03:56 阅读更多 →
终端AI编码代理Zero快速上手:新手必看的5种安装与配置完整指南

终端AI编码代理Zero快速上手:新手必看的5种安装与配置完整指南

【免费下载链接】zero The coding agent that answers to you, your model, your machine, your rules. 项目地址: https://gitcode.com/gh_mirrors/zero55/zero 点击查看 免费下载 Zero 是一款运行在本地终端里的 AI 编码代理(coding agent&#xff09…

2026/10/11 4:02:56 阅读更多 →
Centos7配置yum国内源(BaseOS+epel+ELRepo+SCL+IUS+REMI),支持EL8到EL10

Centos7配置yum国内源(BaseOS+epel+ELRepo+SCL+IUS+REMI),支持EL8到EL10

Centos7配置yum国内源下载国内yum源文件基于 RHEL 的八个 YUM/DNF 第三方存储库配置基础源配置base源(推荐)配置CentOS Vault源---防止yum源过期下载阿里云的base源下载163的base源刷新源查看源是否添加成功安装epel源替换epel.repo文件刷新源查看源是否添加成功验证epel源是否…

2026/10/11 4:02:56 阅读更多 →

最新新闻

软件测试职业进阶指南:从功能测试到测试开发的成长路径

软件测试职业进阶指南:从功能测试到测试开发的成长路径

1. 行业现状与职业地图:先看清测试这盘棋软件测试这个行当,这几年被讨论得很多。一边是互联网大厂高薪招自动化测试、测试开发工程师,一边是很多人抱怨“点点点”没前途、工资低、容易被替代。这种两极分化的观感,恰恰说明了行业正…

2026/10/11 4:50:24 阅读更多 →
Cursor高频快捷键深度指南:从Tab补全到AI编程操作系统

Cursor高频快捷键深度指南:从Tab补全到AI编程操作系统

1. 为什么说“Cursor 别只用来按 Tab”是个真问题——从一个被低估的AI编程工具说起Cursor 这个名字听起来像极了编辑器里那个一闪一闪的小竖线,但实际用过的人很快就会发现:它根本不是“另一个 VS Code 换皮”,而是一套把 AI 编程能力深度缝…

2026/10/11 4:50:24 阅读更多 →
文本批量替换工具实操指南:匹配模式、正则与避坑要点

文本批量替换工具实操指南:匹配模式、正则与避坑要点

简介:随风文本替换专家 v2.0 是一款轻量级文本批量处理软件,面向需要频繁处理多文件的程序员、编辑、数据分析人员,解决重复查找替换和内容追加带来的耗时问题,尤其适合项目代码重构、文章批量添加版权声明、日志整理等场景。资源…

2026/10/11 4:50:24 阅读更多 →
用Coze和Dify智能体生成接口测试用例并自动执行

用Coze和Dify智能体生成接口测试用例并自动执行

讲个真实的背景:我手头一个项目有六十多个接口,光接口文档就一百多页,每次版本迭代都要重新整理测试用例。起初我靠手工一条条写,一个登录模块能憋出四五十条用例,写到最后人已经麻木了。后来我试着用Coze和Dify各搭了…

2026/10/11 4:50:24 阅读更多 →
单片机基础知识 -- 重映射功能Remap

单片机基础知识 -- 重映射功能Remap

文章目录一、重映射的核心本质二、为什么需要引脚重映射?(工程痛点)三、重映射的分类(以STM32为例,通用多数单片机)四、重映射的实现步骤(裸机开发通用流程,以STM32 USART1为例&…

2026/10/11 4:50:24 阅读更多 →
AI应用架构设计:图解动态能力组合与落地避坑指南

AI应用架构设计:图解动态能力组合与落地避坑指南

1. 这不是画PPT,是给AI系统搭骨架“图解AI应用架构设计”这六个字,乍看像培训课件标题,实则藏着当前一线AI落地最常踩的深坑——很多人花三个月调出一个98%准确率的模型,上线后却卡在日均处理200条请求就超时;也有人把…

2026/10/11 4:49:23 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →