
四个 GitHub 提交分别收紧 SWA 回收、HiCache 副本释放、L1 Rerank 输入与 DFlash 状态交接;它们提供的是代码与仓库测试证据,不是端到端性能结论。
209857334 在北京时间 8 月 8 日 08:28:26 进入 commit 记录,改动了 schedule_batch.py 的 maybe_evict_swa。旧逻辑按 forward_iter 对 eviction_interval 取模,所有请求共享一个维护相位;新逻辑改为逐请求检查:请求处于 decode、req.decode_batch_idx >= 1、持有 KV,并且 req.seqlen - 1 - sliding_window_size 至少比 req.kv.swa_evicted_seqlen 多出 eviction_interval。满足后才调用 _evict_swa。1decode_batch_idx >= 1 仍保留了 overlap scheduler 的安全边界,避免前一个 extend batch 仍在运行时提前回收。maybe_evict_swa 的调用时机:固定 sliding_window_size 和 eviction_interval,让两个请求以不同速度推进 seqlen,检查 _evict_swa 是否只在各自跨过 token 阈值后触发。该提交只改了调度条件,没有配套的端到端性能数字;因此不能把更精确的触发条件写成吞吐或显存收益。仓库许可证为 Apache License 2.0,提交页面读取时显示约 31.5k stars;这两项只说明代码的使用和复现前提,不是该修复的效果证明。23dc9136 的 commit 时间为北京时间 8 月 8 日 06:59:59。它调整了 HiCache 的 write_back 路径:host 压力出现时,优先寻找已经存在设备侧 Full KV、同时有 host 重复副本的节点。但「有两份」还不够成为释放条件。patch 增加了 full_host_duplicates、load_back_pending_id 和 write_back_duplicate_reclaim_digest,并要求写回或 load-back 已完成、host 侧没有锁、没有在途 DMA,设备侧 Full KV 仍然存在,才回收 host duplicate。3finish_load_back(anchor_node_id) 用于在确认回传完成后清除 H→D 的在途状态;跨 TP rank 的 reclaim digest 则让回收顺序能被其他 rank 检查。读者复现时应先跑 test/registered/unit/mem_cache/test_unified_radix_cache_unittest.py,再分别制造 host pressure、load-back pending、host lock 和设备 Full KV 缺失的状态,确认只有安全分支会释放重复副本。patch 和该单元测试文件证明了状态机边界被覆盖,仍不证明线上 KV 命中率或 host 内存占用已经改善。4cbc3907 在北京时间 8 月 8 日 01:40:32 进入 commit 记录,修改了目录元数据向量化和重建逻辑。对 ContextLevel.OVERVIEW,L1 记录的 abstract scalar 改为保存经过 _truncate_abstract_bytes 处理的 overview;vectorize_directory_meta 也不再把 L0 abstract 当作 L1 的 abstract。新增测试 test_vectorize_directory_meta_l1_abstract_is_overview 检查 L1 的 abstract 和 message 都等于 overview,另一个测试确认 UTF-8 编码后的 abstract 不超过 50,000 字节。58600457 在北京时间 8 月 8 日 05:42:30 进入 commit 记录,只增加了两行状态传播:在 forward_batch_generation 构造下一轮输入时,把 target_out.routed_experts_output 和 target_out.indexer_topk_output 传入 next_draft_input。patch 的上下文说明,非 overlap 路径从结果推进 batch.seq_lens,而 overlap 路径依赖 next_draft_input 携带状态;缺少这两个字段时,下一轮 draft 可能拿不到上一轮 target 已经计算出的路由与 indexer 结果。7python/sglang/srt/speculative/dflash_worker_v2.py 的 overlap 路径:构造一次 target 输出,检查两类字段是否原样进入下一轮 draft 输入,再验证 suspend/resume 或连续 decode 时不会被清空。两行传播修复的是状态连续性,不是 draft/target 的计算量、接受长度或端到端延迟;没有模型、硬件、运行时和 baseline,这些数字都不能补写。| 提交 | 先测什么 | 目前不能外推 |
|---|---|---|
SGLang 2098573 | 不同 seqlen 的请求是否各自在跨过 eviction_interval 后回收 SWA | 吞吐、显存峰值、请求级尾延迟 |
SGLang 3dc9136 | host pressure、in-flight DMA、load-back pending 下的重复副本回收顺序 | KV 命中率、host 内存节省、跨 TP 线上收益 |
OpenViking cbc3907 | L1 overview 是否进入 Rerank 输入,50,000 字节上限是否生效 | 召回率、排序质量、Rerank 延迟 |
SGLang 8600457 | overlap 路径中两个 target 输出是否进入下一轮 draft 状态 | speculative decoding 接受长度、吞吐、端到端延迟 |
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.