Prhub

sgl-project/sglang · 标签视图

标签列表

聚合结果

ci 相关 PR

2026-09-16
缺陷修复 重要性 6.93 洞察度 6.00

NIXL backend 初始化在同一 helper 线程内先切设备,修复多卡初始化设备错配

值得精读:源码改动仅 8 行,但触及“devic 状态是线程本地”这一常被忽视的并发陷阱,且修复直接关系到 PD 分离多卡部署的初始化正确性。建议重点关注三点:其一,`create_backend` 闭包中 `set_device` 与 `create_backend` 的绑定关系,以及为何必须放到 `run_with_deadline` 回调内部;其二,设备解析从 `ServerArgs.device` 切换到 `get_device().device` 的理由与影响面,后续若 runtime context 接口调整需同步此处;其三,测试写法(`object.__new__` + patch 基类 `__init__`)的成本收益——它让初始化路径可低成本覆盖,但也制造了假绿隐患,评审同类测试时应逐一确认所有会启动后台线程的 hook 是否已被 stub。

基础设施 重要性 5.89 洞察度 5.00

修复始终失败的覆盖率 Job,新增按 GPU 数统计视图

值得精读,尤其是长期维护 CI 的人。重点看两处设计决策:一是用 `set -o pipefail` + `|| echo` 把「非门禁」从意外行为改成显式契约,以及随之而来的问题发现责任转移;二是 `_SUITE_ACCEL_COUNT_RE` 用 `(?:^|-)` / `(?:-|$)` 锚定来区分 runner 规模与 `-tp4`、`qwen3-235b` 这类同名数字,这类「从命名反解元数据」的做法在新增套件命名不规范时会静默失真,建议后续补一个覆盖 `stress`、`mm-gen-*`、`-tp4` 等边界的单测。可略读 `by-gpu-count` job 与 JSON 字段部分,属机械扩展。

基础设施 重要性 4.80 洞察度 6.00

为 Router e2e worker 限定显存预算并禁用 prefill 图,消除启动 OOM

建议精读,但重点不在 diff(只有 22 行、单一测试基建文件),而在 PR body 的诊断链路。值得关注三点:一是「KV 池按卡容量分配、slack 却被激活预留独占」这条内存计费缺陷的完整账本,它解释了许多人遇到过的‘小模型反而更容易 CUDA graph OOM’现象;二是把测试夹具参数收敛成单个 `CI_WORKER_ARGS` 常量、复用既有 `worker_args` 契约而不改读侧的设计手法;三是作者主动标注的后续动作——应针对 memory profiler 开 issue,让 KV sizing 为 graph capture 预留额度。评审/维护者后续应确认两件事:新增 e2e spec 是否强制携带 `CI_WORKER_ARGS`,以及在更大显存或非 H100 runner 上 0.6 这个比例是否仍然合适。

测试 重要性 7.55 洞察度 7.00

真实 GPU e2e 测试覆盖 HiCache 分层缓存路由

值得精读。虽然纯测试变更,但测试设计方法论有很高参考价值:用引擎自身记账而非树状态做 payoff 断言以避免 vacuous pass;按 owner 份额而非集群总量计算驱逐预算;驱动式而非固定请求数;验证前提(双 worker 注册)而非假设;参数化覆盖面相反事件顺序。建议结合系列前序 PR(tier-aware tree 与 metrics 支撑)一起阅读,并关注后续第 4 部分。

缺陷修复 重要性 6.11 洞察度 6.00

PD 测试按 GPU 索引分配 RDMA 网卡,消除跨 socket 超时

值得精读。虽然是纯测试代码,但它是一个“静默性能劣化”的完整诊断案例:从症状(首请求 300s 超时且测试不红)到根因(CUDA_VISIBLE_DEVICES 未参与、盲选 fallback 跨 socket)再到三组对照验证,方法论可以复用到其他 CI 超时排查。值得关注的设计决策:绝对 GPU id 映射、删掉静默回退分支、把三个 helper 合并为一个函数。建议后续跟进两件事:确认 dsv4/hisparse 等覆盖面较小的文件在新映射下无明显回归,并考虑把 inkling 那类“range 来自 COMMON_ARGS”的注释提升为 fixture 约定。

2026-09-15
基础设施 重要性 7.18 洞察度 5.00

AMD CI 合并为一对 workflow 并退役 ROCm 7.0

值得精读,尤其适合负责多硬件平台 CI 的工程师。三个设计点值得借鉴:一是用「单一 workflow + `rocm_version` matrix + 调度 cron 区分版本组合」替代「每版本一套 workflow」的重复布局,将约 3900 行重复配置收敛为一份;二是 `_filter_legacy_amd_job_rows` 的「历史 job 名识别 + 旧数据不污染当前 streak」的过滤策略,是 workflow 改名场景下的实用技巧;三是通过 `fromJson` 让上游 `check-changes` 输出版本数组、下游所有测试 job 统一展开矩阵的编排方式。NPU、Intel 等平台 CI 若面临类似的多版本多 workflow 重复问题,可直接复用此模式。

测试 重要性 6.03 洞察度 5.00

拆分测试改走基类启动器,修复 NCCL 端口竞争

值得精读(10 分钟内可读完),重点不在代码体量而在根因链路:测试 launcher 被覆写 → `--nccl-port` 丢失 → `get_free_port()` 返回临时端口后立刻释放 → 背靠背启动的两侧抢到同一端口 → `init_process_group` EADDRINUSE。建议关注三个设计决策:一是“声明差异、复用基类启动”的 fixture 设计模式;二是端口固定值与 dp-attention 派生端口段之间的边界核算;三是 `launch_all()` 的 fail-fast 看护。同时建议尽快补一个同源 PR 修复 `test_disaggregation_dp_attention.py`,否则同一类 flake 会在别的队列上重演。

基础设施 重要性 3.65 洞察度 3.00

NPU nightly 持久化目录按镜像隔离并修复 glm5_2 过期用例

该 PR 值得快速浏览,无需精读。值得关注的设计决策是:在保持既有路径段数量契约的前提下,用后缀方式把镜像身份注入持久化目录前缀,避免了连锁改动;同时用临时裁剪 job 的方式做定向验证后再回退,是 CI 配置变更的一种稳妥实践。对后续维护者来说,需要注意的是 `sed` 提取 tag 的假设条件,以及在新增 NPU 镜像时保持该命名约定。