8月23日 CUDA 与 AI 系统加速速览:SGLang 启动 2.38×、KV 命中 93.2%、TP 配置省 6.9%

8月23日 CUDA 与 AI 系统加速速览:SGLang 启动 2.38×、KV 命中 93.2%、TP 配置省 6.9%

本期整理 SGLang v0.5.18、prefix KV 路由、SLO-aware fleet profiling、TVM/Triton 编译器修复、持续推荐蒸馏与 CPU 推理模型,给出条件化性能数字和第一步验证动作。

快速判断

条目适用场景第一步动作行动窗口
SGLang v0.5.18CUDA Graph 启动、TP 解码和 Blackwell all-reduce隔离启动、LMHead 和 all-reduce 三段 benchmark今天可做回归
CacheRoute多租户、重复前缀明显的 LLM 服务用真实 key 分布做 shadow replay改路由前
FleetSieveTP 度数、副本数和尾延迟共同决定容量的集群把吞吐与 completion-p99 放进同一轮 profiling扩容前
TVM / TritonTIRx CUDA 发射控制、跨函数共享内存同步先做编译产物和 IR 回归工具链升级时
SCoRD用户兴趣持续变化的召回—重排链路用连续数据流复跑低置信样本更新模型迭代时
Daedalus-150M单用户、长上下文、普通 CPU 推理在 0、1024、2048 token 上测解码曲线CPU 选型时

GPU / CUDA 与推理运行时

SGLang v0.5.18:启动、TP LMHead 和 all-reduce 都有可测改动

SGLang 在 8 月 22 日发布的 v0.5.18,把三条路径的变化写进了同一份 release note。1
  • 启动阶段:checkpoint page 可以和 CUDA Graph capture 并行 staging。Qwen3-32B 在 H100 上,相比带 prefetch 的串行加载快 8.6%–11.7%;相比普通默认路径,启动时间从 84.8 秒降到 35.6 秒,即 2.38×。开关是 --startup-weight-load-mode overlap
  • TP LMHead:纯 DP attention 的 allgather 加 scatter 改成一次 all-to-all。在 DeepSeek-V4-Pro、B200 解码测试中,LMHead 从 320 μs 降到 169 μs,TPOT 从 36.97 ms 降到 35.67 ms
  • 纯 all-reduce:DeepSeek-V4-Flash、TP4、Blackwell 小 batch 测试的吞吐最高提升 6.9%。SGLang 对 DeepSeek-V3、V3.2、V4 自动启用 MNNVL 路径,其他模型需要显式打开 --enable-flashinfer-pure-allreduce
这三个数字各自对应启动、单 token 解码和通信路径,不能合成一个端到端加速结论。升级后还要留意统一的 SGLANG_CACHE_DIR:Triton、FlashInfer、Inductor、DeepGEMM 和 CUDA driver cache 会集中到这个目录,首次启动会触发一次重新编译。第一步可以固定模型、并发和 batch,分别记录启动时间、LMHead 时间、TPOT 与 all-reduce 吞吐。

推理 serving:先看缓存复用,再看容量决策

CacheRoute:prefix KV 命中率升到 93.2%,但要先做 shadow replay

CacheRoute 面向多租户对话服务:同一个业务 key 会反复带着相同前缀回来。它每个控制周期规划 prefix 亲和路由,把高频 key 放进稳定的 warm set,再按预期负载安排目的端。论文在 Llama 3.3 70B、FP8、60 张 H100 上,以 3.5 秒 p99 为约束得到 176±11 QPS,是五个基线中最强者的 2.3×;served KV-cache hit rate 从 cache-blind balancing 的 64.1%±1.3% 升到 93.2%±0.5%23
这项结果依赖请求的 key 复用和热度分布。作者的第二组分布、8B 消融和 burst 实验把 prefix 亲和与负载摆放拆开;两个 32B 工作负载显示,prefix 能回收的计算量较少时,残余负载倾斜会吞掉收益。部署前应当用脱敏后的真实 key、到达间隔和 prefix 长度做 shadow replay,先找出自己的 KV 命中率—队列长度拐点,再决定是否启用固定亲和。

FleetSieve:TP 选择要同时看吞吐和 completion-p99

FleetSieve 解决另一个常见误区:TP4 可能和 TP8 有相近吞吐,尾延迟却让两者的 SLO 结论相反。它按照某次测量对最终 fleet allocation 的影响选择 profiling 点,并把容量与 tail latency 放进同一个决策。
在 31B 开源模型的 H100 测量网格上,FleetSieve 用 22,200 GPU-seconds 到达 oracle aggregate decision,比固定比较中的 uniform random profiling 少 6.9%;200 个随机揭示顺序的平均节省是 5.4%,95% bootstrap CI 为 3.5%–7.2%。在更重的 Chat C128 点,TP4 和 TP8 都服务 11.27 requests/s,completion-p99 却分别是 46.4 秒25.2 秒,只有 TP8 满足 30 秒 SLO。45
这个方法适合扩容前的测量编排,不适合把一组机器上的 TP 结论直接搬到另一组机器。复现时应先固定模型、请求类别和 GPU 数,再为每个 TP/副本组合记录吞吐、completion-p99 和 max-min fulfillment;单看 tokens/s 会漏掉真正的 SLO 约束。

AI 编译器与 kernel 工具链

TVM TIRx CUDA:把寄存器上限和 cluster launch 控制交给 IR

Apache TVM 的一条主线 commit 为 TIRx 增加了 tirx.max_registers。CUDA 13 后端会把它发射为 __maxnreg__,并明确拒绝与 launch bounds 同时使用;运行时还会在 cluster 总大小超过 8 时设置 CU_FUNC_ATTRIBUTE_NON_PORTABLE_CLUSTER_SIZE_ALLOWED。commit 同时补了 CUDA codegen 测试:tirx.max_registers=92 要生成 __maxnreg__(92),和 launch bounds 冲突时要报错。6
这是一条编译控制面变化,官方 commit 附的是 codegen 与错误路径测试,端到端吞吐数字暂待自测。需要调 occupancy、寄存器压力或 Blackwell cluster launch 的团队,可以在固定 commit 上编译一个最小 TIRx kernel:分别检查生成的 CUDA、__maxnreg__ 与 launch bounds 互斥错误,再用 Nsight Compute 对比寄存器数、active warps 和 kernel 时间。

Triton MEMBAR:跨函数调用传播共享内存读写状态

Triton 的 MembarAnalysis 这次把函数入口状态、待处理访问和「所有入口路径都已同步」状态纳入函数摘要。调用点会把 callee 的入口状态映射回 caller;如果 caller 的 pending read 与 callee 的首个 write 冲突,编译器会在 call 前插入 local barrier。新增的 MLIR 回归用例覆盖了直接调用和嵌套调用,并检查 barrier 的位置。7
这项变化先解决 kernel 正确性,再谈性能。自定义 Triton kernel 若把 shared-memory layout conversion 封装进函数,升级编译器后应重点复跑跨函数读写、循环回边和嵌套调用测试;官方 commit 目前提供的是分析与 MLIR 回归证据,端到端吞吐仍需在目标 GPU 上单独测量。

推荐系统工程

SCoRD:只给低置信序列做持续蒸馏

SCoRD 面向用户兴趣持续变化的两阶段推荐链路。它让 semantic reasoning assistant 从 LLM reranker 提取可复用的意图级提示,只对低置信序列选择性蒸馏;后续更新可以只改 retriever,减少每轮都重新调用 LLM 的需要,retriever 表示和意图漂移信号再反馈给 reranker。8
在 Book 数据集的 accuracy-efficiency 表中,SCoRD 的 semantic intent generation 用时 1.4 小时,CoT-Rec 为 15.4 小时;SCoRD 的 inference time 是 75 秒,N@5 为 0.5088,H@5 为 0.5846,CoT-Rec 对应 0.46820.51329
这组数字适合用来判断持续更新的成本结构,不能直接替换线上 A/B。落地前可以把线上日志切成连续时间块,先按置信度阈值分层,分别测 retriever-only update 的生成成本、训练时间、召回质量和 reranker 延迟,再决定 assistant 触发频率。

CPU 推理模型

Daedalus-150M:把 12 个 attention block 换成短卷积

Daedalus-150M 先固定普通 CPU、单用户、逐 token 解码和 4-bit 权重,再设计模型结构。18 个 block 中只有 6 个保留 full attention,另外 12 个使用只需保存两步状态的短卷积,因此长上下文时不必让整套网络反复读取增长中的 KV cache。
作者用同规模、同数据训练的全 attention 模型做对照:在 2048 token context,Daedalus 解码快 1.76×,4-bit 文件小 6.3%;与外部同量级模型对比是 2.08×。参数匹配对照的选定质量指标高 0.81%,下游任务相当。1011
这项收益随 context 增长,在空 context 附近接近于零;测量来自单个 seed,模型是英文模型,作者把可用范围写到训练过的 2048 token。CPU 或边缘设备选型时,应当把 0、1024、2048 token 的 decode 曲线和 4-bit 质量一起测,别只拿 2048 token 的峰值速度做结论。

今天怎么排验证顺序

  1. 正在升级 SGLang:先做启动、LMHead 和 all-reduce 三个隔离 benchmark,并把首次重新编译的时间单独记账。
  2. 服务有明显重复前缀:先做 shadow replay,观察 KV hit rate、队列长度和 p99,再决定 prefix 亲和路由。
  3. 正在做容量规划:把 TP/副本组合放进同一张 profiling 表,同时记录吞吐和 completion-p99。
  4. 正在改编译器或推荐链路:Triton/TVM 先过编译与正确性回归;SCoRD 先在连续时间块上验证低置信触发规则,再进入线上实验。
CUDA 与 AI 系统加速日报

CUDA 与 AI 系统加速日报

面向工程与算法读者的日报频道,追踪 CUDA、GPU、性能加速、AI 编译器优化,以及推荐模型与推荐系统相关进展。

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • Sign in to comment.