
SGLang、vLLM、OpenViking 与 TensorRT-LLM 的五条窗口内提交,把 HiCache 恢复、长上下文 gather、量化 KV、tool output 和零拷贝 token 输入分别接上独立对照物;本期能确认的是正确性边界,不是共同 workload 下的性能收益。
f9153df6,为 Inkling-Small-NVFP4 增加多轮 HiCache decode-cache-hit 测试。测试在 4 张 B200 上运行,启用 CUDA graph、write_through、host HiCache、页大小 128 和 Mamba track interval 128;它构造 3 组、每组 3 个分支、共 3 轮的交错请求,让多个分支共享前缀后再分叉。1make_mamba_decode_assert(track_interval=128) 检查 decode-side track 保存结果。提交没有给出一次运行的误差数字或 host 传输延迟,所以它能证明的是「恢复后的值不能改变」,不能证明 HiCache 带来多少吞吐。test_multiturn_decode_cache_hit_over_hicache,再分别关闭 write_through、缩短或拉长 track interval、放宽内存池,观察哪一个条件让路径不再真正经过 host tier。这样才能区分「测试覆盖了状态搬运」和「测试只命中了本地 cache」。SGLang 仓库当前 API 返回 Apache-2.0 许可证、31,691 stars;stars 只是仓库定位线索,不是本次提交的性能指标。2c76a4252,标题是「Optimize long-context MLA cache gathers」。补丁新增 benchmark_cp_gather.py,把单序列 60k、300k,以及 60k 到 300k 的 skew batch 写成固定场景;它还新增了 cp_gather_cache、FP8→BF16 upconvert 和可能解量化路径的带宽计算入口。脚本打印 latency 和按搬运字节计算的 GB/s,但提交本身没有附带运行结果,不能把这些场景写成已经获得的加速数字。3[17, 32_768, 71] 这样的不均匀序列长度,分别测试有无 seq_starts;另一个测试覆盖 [0, 1, 63, 4],并故意让源和目标 tensor 处在非对齐 view。FP8 路径先用固定 scale 得到 BF16 期望值,再比较 gather 结果。这样检查的是 page table、非零起始位置、空请求和不同 stride 是否仍然对应同一批 token,而不是只看一个整齐的 batch。tests/kernels/attention/test_cache.py 中的 *_with_seq_starts 与 *_large_uneven_sequences,再用 benchmarks/kernels/benchmark_cp_gather.py --scenario skew-8 做自己的硬件测量。读者需要保留 GPU 型号、dtype、block size、序列长度和是否 upconvert;没有这些字段,脚本输出的 GB/s 不足以和别人的结果比较。vLLM 当前 API 返回 Apache-2.0 许可证、88,803 stars。45426311d,为 ROCm gfx950 接入 FlyDSL 的 4-bit TurboQuant KV decode attention kernel。测试模块只在 ROCm、gfx950、FlyDSL 可用时运行;它用 16 个 centroid 构造压缩 key/value,保存 K norm、V scale 和 V zero,再把这些量精确解码,交给纯 PyTorch 的 FP32 softmax attention 作为 oracle。实现输出使用 BF16,测试设置的绝对误差阈值为 5e-3。5max_seq_len 把 decode 分成短序列 2D 路径和长序列 3D 路径,调用方需要把实际 block table 的长度提示传进来,避免为了省一次 .item() 而改变路径判断。这个约束是 kernel 复现条件,不是性能收益。gfx950、FlyDSL 版本和 4-bit cache layout,再检查 FP32 oracle 的 K/V 是否来自同一份 centroid、scale、zero;只比较最终输出而不核对量化数据,会把 cache 编码错误和 kernel 累加误差混在一起。57e26fab6,修正多个 coding-agent memory plugin 的 tool-result 捕获。此前客户端把一个 tool part 的 tool_output 截到 2,000 个字符;服务端默认在 20,000 个字符后才把结果写入 ToolResultStore。因此 2k 到 20k 的内容会在客户端先消失,更大的内容也到不了 tool_output_ref 回读路径。6captureToolMaxChars 的默认值提高到 1,000,000,但这个值只是防止病态 payload 的 guard cap,不是要求服务端把一百万字符都塞进活动上下文。超过服务端 tool_output_externalization.threshold_chars(默认 20,000)的结果仍由服务端外置,part 中保留 synopsis 和 tool_output_ref,原文再通过 /tool-results 读回。提交还修掉了 pi 插件在 tool-only payload 中把同一结果同时写入 tool part 和普通 text part 的重复问题。60c98e929,在 KVCacheManagerV2 的 C++/nanobind 路径中启用连续 int32 ndarray 的 token ingest。对不含 multimodal digest 的普通 token,绑定层可以把连续的 4-byte token buffer 解释为 TokenIdExt*,避免先复制成逐元素 list。8create_kv_cache 和 commit,再分别用 list 与 ndarray 调 probe_reuse;随后清空可复用树,反过来用 list 提交、ndarray 探测。两种方向都要求完整命中。测试同时把 hash 参考从 8-byte 整数改为符合 C++ TokenIdExt 的 4-byte little-endian 表示,并拒绝长度不是 32 bytes 的 multimodal digest。int32,再确认 list/ndarray 的 commit 与 probe 互相命中。它还没有给出 Python→C++ ingest 的拷贝计数、CPU 时间或 serving 吞吐,因此「zero-copy」在这里首先是内存路径与哈希语义的实现事实,不是线上收益数字。TensorRT-LLM 当前 API 返回许可证字段 NOASSERTION、14,360 stars;不要把这个字段解读成许可证已经确认。9| 提交 | 交接对象 | 直接证据 | 先复现什么 | 目前不能推出 |
|---|---|---|---|---|
SGLang f9153df6 | HiCache host tier 与 Mamba track 状态 | 多轮分支、write-through、bit-exact logprob 测试 1 | test_multiturn_decode_cache_hit_over_hicache | host 带宽、TTFT、吞吐 |
vLLM c76a4252 | MLA paged cache gather 与长序列 workspace | 60k/300k/skew benchmark 入口,不规则长度与 seq_starts 测试 3 | *_with_seq_starts、*_large_uneven_sequences | 实际 GB/s、线上尾延迟 |
vLLM 5426311d | 4-bit TurboQuant KV 与 ROCm decode kernel | gfx950/FlyDSL + FP32 attention oracle + 5e-3 ATOL 5 | ROCm 条件下的 correctness test | KV 显存节省、端到端 decode 加速 |
OpenViking 7e26fab6 | tool output、服务端外置与回读引用 | 50k 原样捕获、可调 guard cap、tool-only 去重测试 6 | 外置、回读、重复写入三条路径 | 召回质量、检索延迟、长期 retention |
TensorRT-LLM 0c98e929 | ndarray token ingest 与 list cache key | C++ backend 双向 commit/probe 等价测试 8 | 连续 int32、list/ndarray 双向命中 | 拷贝节省量、CPU 时间、吞吐 |
github.com
api.github.com
github.com
api.github.com
github.com
github.com
api.github.com
api.github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.