
8月3日 CUDA 与 AI 系统加速速览:混合长度推理、GPU wheels 与生成式推荐重排
本期聚焦 NELSSA 的 GPU-PNM 混合长度 serving、Astral GPU indexes 的预编译扩展,以及 PSG 在生成式推荐重排中的 pair-space 加速,给出性能数字和复现边界。
先看结论
今天有三条更新适合直接进入验证队列:混合长度请求可以按长度拆到 GPU 与近内存加速层;CUDA/PyTorch 扩展可以用按 CUDA 与 PyTorch 版本分层的预编译 wheel,减少本地编译变量;推荐重排则把生成单位从单个 item 改成有序 item pair,换取更少的自回归步数。三条的数字都不是通用承诺:前两条依赖硬件或安装矩阵,第三条依赖候选集大小、列表长度和线上延迟预算。
GPU 与推理系统
NELSSA:把混合长度请求分到 GPU 与 PNM
适用场景:同一个 serving 集群里同时存在几百 token 的短请求和几十万 token 的长请求,GPU-only batching 已经被显存或尾延迟卡住。
7 月 29 日提交的 NELSSA 论文把 PNM(processing-near-memory,近内存处理)设备接入 LLM serving:短上下文请求留在 GPU,长上下文请求送到 PNM;请求运行中变长时,系统可以迁移请求而不重算已有结果。原型同时实现了 PNM 侧稀疏注意力、GPU decode kernel,以及通过 CXL、RPC 和 RDMA 协调设备与内存移动的主机运行时。1
在混合长度工作负载上,作者报告相对 GPU-only baseline 的 decode throughput 最高提升 5.5 倍,P99 latency 最高降低 15 倍。这是论文原型在 GPU-PNM、CXL 互联和特定负载下的结果,不是给现有 CUDA serving 引擎换一个 kernel 就能得到的收益。1
第一步验证不是复刻 PNM,而是先把现有流量按输入长度分桶,分别记录 GPU-only 的显存峰值、decode token/s、P99 和请求迁移时的重算量。只有当长请求持续挤压短请求的尾延迟,且集群具备可观测的跨设备内存通道时,才值得进一步评估 CXL/PNM;否则,长度感知 batching 或独立队列可能已经解决主要问题。
CUDA 与 AI 编译器工具链
Astral GPU indexes:先消掉扩展编译变量
适用场景:CI 或开发机经常在 FlashAttention、DeepGEMM、Transformer Engine、vLLM 等扩展上重复编译,并且团队能固定 CUDA、PyTorch、Python 和 CPU 架构组合。
8 月 2 日的工程记录提到,Astral 已提供面向 GPU 包的预编译 wheel;官方索引页面列出 FlashAttention、FlashAttention 3、DeepGEMM、DeepSpeed、PyCUDA、Transformer Engine 和 vLLM 等包。每个 CUDA 版本使用独立索引,wheel 版本把 CUDA 与 PyTorch 组合编码在版本号中。23
例如 CUDA 12.6 索引提供带
cu.12.6 和 torch.2.12 标记的 FlashAttention wheel,可以把安装写成:uv pip install \
flash-attn==2.8.3.post1+cu.12.6.torch.2.12 \
--index astral-cu126=https://wheels.astral.sh/simple/cu126/这项更新解决的是构建和依赖复现,不等于 kernel 运行时加速。官方页面没有给出安装耗时、编译失败率或推理吞吐 benchmark;落地时应先核对 wheel 的 Python、PyTorch、CUDA、平台和目标 SM 覆盖,再在目标 GPU 上跑 import、单 kernel、端到端模型三层 smoke test。2
推荐系统工程
PSG:用 item pair 把生成式重排的步数减半
适用场景:候选集不大、重排列表长度固定,而且 generator 的延迟预算比模型表达能力更紧张的生成式推荐系统。
PSG(Pair-Space Generation)把两个有序 item 组成一个生成 token。目标列表长度为
L 时,item-space 需要生成 L 步,pair-space 只需生成 L/2 步,再展开回 item 序列。代价是词表随候选数平方增长:候选数 n=60 时,pair vocabulary 为 n(n-1)=3,540;若把三个 item 合成一个 token,词表会扩大到 216,000,因此论文把 k=2 作为在线部署折中。4论文报告了快手主 App 单列推荐流的 7 天 A/B 测试:线上 baseline 是 GoalRank,两个互不重叠的流量桶各占 10%,输入为 60 个候选、100 长度的用户行为序列,生成 50 个长度为 6 的候选序列;generator 预算为 30 ms,整个 generator-evaluator 流程预算为 50 ms。在同一云容器环境中,PSG 的 generator latency 为 20.99 ms,GoalRank 为 38.42 ms;QPS 从 734 提升到 1320,论文报告的相对停留时长变化为 +0.178%。4
这个结果的边界很清楚:它是 CPU-based generator,候选集为 60,列表长度为 6,且依赖 30 ms 的 generator 预算。候选数升到 400 时,pair vocabulary 已经是 160,000;
k=3 则达到 64M,训练、部署和更新成本都会改变。验证时应固定候选数和列表长度,先测 item-space 与 pair-space 的解码步数、P50/P99、QPS,再检查 NDCG、Recall 和业务指标是否同时稳定,不能只拿 1.83 倍延迟改善当作推荐收益。4带回仓库的检查清单
- 混合长度 serving:先按输入长度拆分现有流量,记录 GPU-only 的显存峰值、decode token/s、P99 与迁移重算量,再决定是否需要 PNM/CXL。
- GPU 扩展安装:固定 Python、PyTorch、CUDA、GPU 架构和 ABI,试装 Astral wheel,并把 import、单 kernel、端到端模型结果写入 CI。
- 生成式重排:在候选数 60、列表长度 6 的配置下复现 item-space 与 pair-space 的延迟和 QPS,同时保留 NDCG、Recall、P50/P99;候选规模变化后重新计算词表,而不是沿用
k=2的结论。
Related content
- Sign in to comment.
