Prhub

sgl-project/sglang · 标签视图

标签列表

聚合结果

performance 相关 PR

2026-09-16
功能 重要性 8.88 洞察度 7.00

Router 新增饱和下限,全队排队时钉住前缀拥有者

值得精读:`policies/admission.rs` 的 pin 分支是完整的「何时不该分流」判据实现,`policies/engine_load.rs` 的极性注释解释了为什么缺采样两个方向的默认动作都是留在前缀拥有者。重点关注三个设计决策:floor 与 limit 的取值关系如何决定标签口径;压力排序与缓存局部性排序之间的取舍(作者明确标记为未决);`all_queued` 语义扩张对现有看板的影响。若计划在生产启用,建议先确认 prefill 舰队负载采样覆盖率,并观察 `saturation_pin` 与 `all_queued` 计数是否出现预期外的增长。

性能优化 重要性 6.57 洞察度 6.00

Ascend 采样改主机侧判定,消除每 token 设备同步

建议精读,但只需要 10 分钟左右:改动量极小,却是理解 Ascend 采样热路径与「设备标量判定 → 隐式同步」这一常见性能陷阱的好样本。重点关注三处设计决策:一是 `npu_top_k_top_p_eligible` 的计算位置选在 `from_schedule_batch`(而非每次采样),依赖「top_k 在采样期间不变」这一前提;二是 `merge_batch` 用 AND、默认值取 `False` 的保守取向,使漏传与合并只带来性能退化而不带来正确性风险;三是新增测试用 `torch.all` 抛 `AssertionError` 做护栏的写法,可作为同类优化的测试模板。需要在真实 NPU 上验证收益的团队,建议补充带同步计数的 profiler 证据,而不是依赖吞吐数字。

#39648 dsv4.1: Top-k kernels and candidate selection

原始 PR · 作者 hnyls2002 · 合并时间 2026-09-16 14:54

功能 重要性 8.38 洞察度 8.00

DSV4.1 新增索引器内核,重做 Top-K v2 分派

建议精读,重点关注三处:`topk.py` 的探测驱动 JIT 宏与 `plan_topk_v2` 默认值语义、`topk_impl.cuh` 的 NaN padding 与 `coarse_bin_lower_bound` 的 round-to-even 补偿、`topk_v2.cuh` 的 `PageTransform` 解耦与 cluster 8/16 分派。四个值得学习的设计决策:用 NaN 而非极小值填充以保护合法的 -inf;用 ULP 步进而非重算 fp16 bin 处理 round-to-nearest-even;用 `cudaOccupancyMaxActiveClusters` 而不是 SM 数除法定 pool 尺寸(GPC 约束);把 page-table 变换从选择内核解耦成独立结构以便两种输出模式共用。若负责索引器或 Blackwell 性能,建议先补齐 BBuf 要求的边界 benchmark 再信任这些阈值,并为三个新内核补注册测试。

性能优化 重要性 5.95 洞察度 5.00

为 H20 新增 GLM-5.3-Flash block-FP8 MoE 调优配置

值得精读,但重点不在 diff 本身(只有 1 行代码 + 2 份 JSON),而在于它示范了 sglang 的 MoE 配置分发机制:文件名即查找键、M 桶分档、设备名隔离,以及调优器与运行时如何共享同一套 E/topk/intermediate_size 口径。建议关注三点:一是 `get_model_config()` 中 `Glm5NextForConditionalGeneration` 被加入外层白名单但未加入共享专家融合内层白名单的语义后果(E 不加 1);二是小 M 与大 M 收益落差极大(1.9x vs 1.05x),不要向长 prefill 场景承诺同等加速;三是这类配置资产与 Triton 版本目录强绑定,升级 Triton 前需要预留重新调优的窗口。

缺陷修复 重要性 7.90 洞察度 7.00

PD 准入门口直接退休被拒请求,decode 超时降为即时 400

值得精读。核心设计决策包括:a) 以「资源所有权」判别 intake 拒绝与请求重入——prefill 门口嗅探资源、decode 门口信任调用方标志的差异化策略;b) 退休收尾集中到 `Scheduler.retire_unadmitted_request` 单一入口,与 #36988 的 post-forward 路径共享同一所有权测试从而保证互斥;c) 测试用 spy 包装真实退休方法,让门口与退休两半代码相遇;d) 明确拒绝「统一 `_check_if_req_exceed_kv_capacity` 与退休逻辑」这类表面合理的合并。该 PR 也展示了高价值自审 review 的写法:先验证两个 load-bearing 论断,再列出「明确不是问题」的排除项,避免后人重复争论。

功能 重要性 7.73 洞察度 5.00

CPU 新增 FP8 per-tensor GEMM 内核,W8A16 量化加速

值得精读。核心亮点是把 per-tensor scale 作为 block-scale 的特例来复用现有 tinygemm 框架,避免重写一套 GEMM;has_bias 通过模板参数在编译期展开,配合 AT_DISPATCH_BOOL 避免运行时分支;测试参数化覆盖了 scale 张量维度、prepack 与 bias 组合。建议读者关注模板泛化对既有调用点的契约影响,以及 CPU AMX 前置条件在前端如何被强制校验。

性能优化 重要性 6.31 洞察度 5.00

ROCm 默认切 HIP Top-K,GLM-5.x 交互性提升

值得快速阅读(约 5 分钟):单文件小改动,但包含一个可复用的设计模式——用 env 的 `is_set()` 判断区分“用户显式选择”与“平台默认值”,避免覆盖用户配置;同时以 A/B 数据驱动平台默认 kernel 切换。关注 AMD 平台支持、参数解析或环境变量契约的工程师建议阅读;对纯 CUDA 使用者影响很小。

功能 重要性 7.24 洞察度 7.00

让 fused_moe_triton 调优器支持 XPU,并新增 Arc Pro B60 的 DeepSeek-OCR-2 MoE 调优配置

值得精读,尤其是正在做多后端 Triton kernel 调优或维护 MoE 相关 benchmark 工具的工程师。三个值得关注的设计决策:一是用 `get_device_module` 一次性收敛同步、事件、图捕获与播种,避免在 kernel 里写 XPU 专用分支,这是「最小持续成本」路线的具体落地;二是 `clear_b_tma_desc_cache` 揭示的隐藏耦合——描述符缓存与图捕获内存争用,在长生命周期服务的语境下为什么是 no-op;三是把 topk_ids 层布局从硬编码改为从模型配置解析,代价是引入了对模型元数据字段的隐式依赖。阅读时建议同时对照 Intel Triton issue #7306 / #7691 与 PR body 中的 workload 结果表,并留意 `tuning_fused_moe_triton.py` 与 `_sep` 版本仍需保持行为一致,以及 review 中 airMeng 提出的下一步方向(KV cache store 等 memory-bound kernel)。