Prhub

sgl-project/sglang · 标签视图

标签列表

聚合结果

cuda-graph 相关 PR

2026-09-13
性能优化 重要性 7.63 洞察度 5.00

去重注册复用 CUDA live executable,省显存并扩大共享范围

值得精读。该 PR 体现了两个可借鉴的设计决策:一是"签名粗筛 + 运行时精验"的分层校验思想——静态签名只做低成本粗分类,精确兼容性交给 `cudaGraphExecUpdate` 在关键路径上验证;二是信任并利用底层 API 的原子性语义(失败的 update 不修改目标),从而安全地去掉冗余保护实例。对需要维护 CUDA graph 捕获/执行机制、或设计去重/缓存类系统的工程师尤其有参考价值。

2026-09-05
性能优化 重要性 7.06 洞察度 8.00

向量化分配器核心循环,消除批量请求的逐请求 Python 循环和 host-device 同步。

本 PR 是一个有价值的性能优化,其核心向量化思路和对边界条件的处理(如空池守卫)值得精读。建议重点关注以下方面: 1. **向量化范式**:学习如何将逐元素循环转换为基于 `searchsorted` 和广播操作的张量运算。 2. **`torch.where` 的副作用**:理解在向量化计算中,`torch.where` 会无条件计算所有分支,因此需要确保索引在任何情况下都有效,这通过 `clamp` 或快速路径来保证。 3. **性能权衡**:仔细评估性能数据,理解优化在不同 `batch_size` 和 `extend_length` 下的收益与代价。考虑到缺少集成测试,建议在合并后密切关注相关内存分配测试。

2026-09-04
性能优化 重要性 5.59 洞察度 4.00

提升 32GB GPU 内存层的 CUDA Graph batch size 和 chunked prefill 上限,修复高并发解码吞吐量崩溃问题。

这是一个直接且效果显著的性能调优 PR。建议技术管理者关注其在 32GB GPU 产品线上的性能提升,并考虑将其作为基准性能的一部分。对于工程师,值得精读 `memory_hook.py` 中关于 GPU 显存层级划分和参数设置的设计,理解其如何根据硬件特性动态优化配置。PR 提供的详细验证方法和数据也值得在后续性能优化工作中借鉴。

2026-08-30
缺陷修复 重要性 8.70 洞察度 6.00

修复 Qwen-VL ViT CUDA graph 按布局复用与工作区地址绑定

值得精读。重点学习两个设计决策:一是 CUDA graph key 必须包含请求级元数据(仅按长度复用是典型的 graph 陷阱);二是用“退役旧分配 + 按 graph 绑定地址”解决 capture 后地址失效问题。`_sequence_layout_key` 把同步从查找路径挪到 CPU 预处理的做法,也值得其他 CUDA graph runner 复用。

2026-08-25
功能 重要性 5.59 洞察度 4.00

HIP 使能 DSA draft_extend CUDA graph 捕获

值得精读,尤其是 CUDA graph 捕获的允许列表设计。这是一个小幅但影响明确的性能优化,展示了如何通过后端隔离和本地导入实现跨平台支持。建议关注后续对 DSA HIP 的测试覆盖和长期稳定性。

缺陷修复 重要性 3.95 洞察度 4.00

SM120 flash_mla 分页缓冲改在推断模式外分配

值得精读,但仅面向关注 SM120 内核和 CUDA graph 相关机制的工程师。核心设计决策是保持惰性缓冲区分配与使用模式一致性,并修复不对称保护。可借鉴其注释说明写法,但实现简单,无需深度分析。

2026-08-20
缺陷修复 重要性 5.92 洞察度 5.00

修复 DP attention 下 Nemotron-H Mamba CUDA graph 崩溃

值得精读,因为它展示了 DP attention 与 CUDA graph 后端交互时的关键坑点及修复模式,尤其对从事模型推理内核和 CUDA graph 优化的工程师有参考价值。关注点:如何将 eager 路径与 CUDA graph 路径统一,以及 `fuse_mlp_allreduce` 在 DP 下的特殊处理。

2026-08-04
性能优化 重要性 5.74 洞察度 4.00

仅 DP 路径保留 CG 捕获输入,prefill 图内存减约 0.87 GB

值得花约 5 分钟精读。它展示了一个极小的条件门控如何消除 CUDA graph 捕获阶段不必要的对象生命周期管理,同时保持 DP 路径语义完全不变。值得关注的设计决策是用 global_num_tokens_gpu is not None 作为 capture-only 张量存在性的代理标志,避免了引入显式状态位;读者可结合 #31682 一起阅读,理解 SGLang 中 runner/backend 分层下参数传递契约的演进。