执行摘要
修复 TRTLLM MHA draft decode 缓存序列长度重放
确保 draft decode 场景下 CUDA graph 重放时,缓存序列长度(cache_seqlens)正确绑定到当前 batch 子集,避免数据竞争或错误的内存写入。
值得立即合并,修复了可能导致不正确推理结果的 bug。建议未来为该路径增加单元测试。
无 review 评论。
确保 draft decode 场景下 CUDA graph 重放时,缓存序列长度(cache_seqlens)正确绑定到当前 batch 子集,避免数据竞争或错误的内存写入。
值得立即合并,修复了可能导致不正确推理结果的 bug。建议未来为该路径增加单元测试。
无 review 评论。
init_forward_metadata_replay_cuda_graph 方法的 Draft Decode 分支中,将 metadata.cache_seqlens_int32 重新绑定到 self.decode_cuda_graph_metadata["cache_seqlens"][:bs] 切片,确保指向当前 batch 的预分配缓冲区。copy_ 将更新后的序列长度(seq_lens + self.speculative_step_id + 1)写入该切片。seq_lens_cpu 相关行,改用 seq_lens.max().item() 计算 max_seq_len_k,因为 seq_lens_cpu 在此处不再需要。max_len 局部变量,直接计算 max_seq_len_k 和 max_seq_pages。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
python/sglang/srt/layers/attention/trtllm_mha_backend.py |
注意力 | modified | 5.87 |
分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
低风险:变更仅影响 TRTLLM MHA 后端的 CUDA graph 重放路径,且逻辑简化了数据流。未涉及其他注意力后端或模型。
影响范围限于使用 TRTLLM MHA 后端且启用 speculative decoding 的场景。修复可能影响 Blackwell 等 GPU 上的推理正确性。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论