AGENT PULSESJCPal Special EditionAI Industry Evidence & Trends
Sep 17, 2026 · PyTorch

viable/strict/1789658860: [Native DSL] Share topk policy across JIT and AOT (#196599)

What Happened

PyTorch 发布 PR #196599,将 topk 策略在 JIT 与 AOT 之间共享:以 torch-free 的 AOT 声明作为 topk dtype、capability、K、N 与 work-rung 选择的唯一来源,JIT 改为导入该策略,并获得 SM90 与 bfloat16 的实测配置以及相同的 dynamic-N kernel 变体。AOT 的 exact-N 网格被替换为 runtime-N radix kernel 与一条 K=16 寄存器分支阶梯。K=16/N=2048 与 K=32/N=256 两个单形状寄存器离群点仍保留为 JIT-only,因为把 N=2048 折入阶梯会使 full-wave 延迟最多回退 72%;在 B200 上 K=16/N=1024 也是 JIT-only 精确档,共享阶梯在该处慢 10.91%。内嵌 manifest 从每架构 48 个 kernel 降至 29 个,SM90 与 SM100 合计从 96 降至 58。

EVENT STORY

Development

  1. First Reportviable/strict/1789658860: [Native DSL] Share topk policy across JIT and AOT (#196599)PyTorch Core
  2. Industry Responsetrunk/96600b6cc815b5b6c7c8db104fafb6e77dc69e88: [Native DSL] Share topk policy across JIT and AOT (#196599)PyTorch Core
  3. Current Assessment该 PR 反映的是推理算子层的工程收敛方向:把编译期策略声明作为唯一事实来源,同时压缩每架构的 kernel 数量,直接关系到编译产物体积与维护成本。但证据也显示,性能最优与策略统一之间存在张力,个别形状必须保留专用路径。对依赖 PyTorch 编译栈的团队而言,这类变更会改变 JIT 与 AOT 的行为一致性预期,需要关注自身负载是否落在被保留的例外形状上。Agent Pulse · analysis
What Changed

该变更把 topk 的 dtype、capability、K、N 与 work-rung 选择收敛到一份 torch-free 的 AOT 声明,JIT 直接导入同一策略,从而让 JIT 与 AOT 的条件分支与覆盖范围一致。AOT 侧用 runtime-N radix kernel 加一条 K=16 寄存器分支阶梯取代 exact-N 网格;动态向量尾部策略在同一 manifest 点于编译期选定,SM90 保留固定四次迭代上界,SM100 使用运行时尾部范围。固定向量小 N 与 K=512 档保留有界工作量,K=1024 保留双 CTA 启动上界。代价是少数形状被显式排除在共享阶梯之外:K=16/N=2048 与 K=32/N=256 因延迟回退最多 72% 而保持 JIT-only,B200 上 K=16/N=1024 因共享阶梯慢 10.91% 也保持 JIT-only,且该精确档不新增 AOT kernel。最终内嵌 manifest 由每架构 48 降至 29 个 kernel,SM90 与 SM100 合计由 96 降至 58。

How the Capability Boundary Shifted

从证据看,这是一次以「单一策略源」换取 kernel 数量下降的重构:JIT 与 AOT 不再各自维护条件分支,而是共享同一份声明,因此覆盖差异被显式化。值得注意的是共享并非无条件最优——三个形状被保留为 JIT-only,其中 N=2048 折入阶梯导致最多 72% 的 full-wave 延迟回退,B200 上 K=16/N=1024 共享阶梯慢 10.91%,说明寄存器阶梯对特定 N 的适配存在边界。可验证的下一信号是:这些 JIT-only 例外是否在后续 PR 中被重新纳入,或 manifest 数量是否进一步下降。

Why It Matters

该 PR 反映的是推理算子层的工程收敛方向:把编译期策略声明作为唯一事实来源,同时压缩每架构的 kernel 数量,直接关系到编译产物体积与维护成本。但证据也显示,性能最优与策略统一之间存在张力,个别形状必须保留专用路径。对依赖 PyTorch 编译栈的团队而言,这类变更会改变 JIT 与 AOT 的行为一致性预期,需要关注自身负载是否落在被保留的例外形状上。

Who It Affects

对使用 PyTorch 编译栈的团队,kernel 数量从每架构 48 降至 29、SM90 与 SM100 合计从 96 降至 58,意味着更小的编译产物与更少的架构特化维护面;但 K=16/N=2048、K=32/N=256 与 B200 上 K=16/N=1024 仍走 JIT-only 路径,若线上负载命中这些形状,性能特征与 AOT 路径不同,需在升级前实测确认。

What to Watch Next

若该模式延续,topk 之外的算子也可能采用同样的共享策略声明,manifest 规模或继续收缩。可验证的下一信号是后续 release 中 JIT-only 例外清单是否缩短,以及 SM90/SM100 之外的架构是否被纳入同一策略。