Prhub

#22099 Align diffusion nightly presets and broaden skill discovery

原始 PR 作者 BBuf 合并时间 2026-04-04 21:43 文件变更 19 提交数 8 评论 1 代码增减 +380 / -3937

执行摘要

对齐扩散模型 nightly 基准测试预设与技能文档,以 LTX-2 案例为中心并扩展机会发现指导。

PR body 指出需要对齐扩散 nightly 配置、基准测试预设和文档,围绕 LTX-2 nightly 案例,并添加扩散机会发现指导(如 fused QK norm + RoPE),以确保优化工作优先利用现有快速路径,避免重复造轮子。

建议开发者和性能工程师精读更新的技能文档,特别是 existing-fast-paths.md,以了解新增的融合 QK norm + RoPE 等机会指导。同时,关注 bench_diffusion_denoise.py 中的 denoise 延迟计算逻辑,确保其正确性。此 PR 展示了文档与配置对齐对优化生态的重要性,值得一读以理解扩散模型的最佳实践。

讨论亮点

review 中仅有一个评论,由 gemini-code-assist[bot] 提出,针对 bench_diffusion_denoise.py 的 denoise 延迟计算逻辑:当前逻辑仅在 denoise_stage_total_ms 大于 0.0 时才设置 denoise_latency_s,但如果匹配阶段存在但持续时间为 0.0,则会错误回退到步级指标。建议改进为跟踪是否找到任何匹配阶段,而非仅依赖持续时间。此问题尚未解决,属于正确性讨论。

实现拆解

实现拆解为以下部分:1) 测试组织:重命名 Z-Image 测试文件到 jit_kernel/tests/diffusion/;2) 技能文档更新:修改多个 SKILL.md 文件(如 sglang-diffusion-benchmark-profile、sglang-diffusion-ako4all-kernel),集成 LTX-2 案例、简化技能流并移除未使用的 Triton/CUDA 内核技能;3) 基准测试脚本:在 bench_diffusion_denoise.py 中添加 LTX-2 预设,调整 denoise 延迟计算逻辑以聚合多个阶段;4) CI 集成:扩展 run_comparison.py 的 payload 处理,支持 FPS 和 negative_prompt 等新参数;5) 性能分析:修改 profiler.py,添加 _resolve_profiler_log_dir 函数统一日志目录解析;6) 清理:删除未使用的脚本和文档文件(如 nsight-profiler.md、bench_diffusion_rmsnorm.py)。

文件 模块 状态 重要度
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/scripts/bench_diffusion_denoise.py benchmarking modified 7.0
python/sglang/multimodal_gen/.claude/skills/sglang-diffusion-benchmark-profile/existing-fast-paths.md documentation modified 6.0
scripts/ci/utils/diffusion/run_comparison.py ci modified 5.0
python/sglang/jit_kernel/tests/diffusion/test_norm_tanh_mul_add_norm_scale.py testing renamed 4.0
python/sglang/multimodal_gen/runtime/utils/profiler.py profiling modified 4.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

_resolve_profiler_log_dir run_benchmark_once build_sglang_cmd send_request_sglang

评论区精华

Denoise 延迟计算逻辑在基准测试脚本中的正确性 正确性

gemini-code-assist[bot] 指出当前逻辑仅在 denoise 阶段总持续时间大于 0.0 时才设置延迟指标,若阶段存在但持续时间为 0.0 则会错误回退到步级指标,建议跟踪是否找到匹配阶段而非仅依赖持续时间。

结论:问题未解决,需改进逻辑以确保鲁棒性。 · 待处理

风险与影响

技术风险包括:1) 基准测试逻辑变更可能导致 denoise 延迟计算不准确,特别是在阶段持续时间为 0 的边缘情况下;2) 删除技能文件(如 sglang-diffusion-cuda-kernel/)可能影响依赖这些技能的开发工作流;3) CI 脚本修改需确保向后兼容性,避免破坏现有 nightly 比较流程;4) 文档更新若与代码实现不一致,可能误导优化决策。

影响范围:主要影响扩散模型开发者和性能优化工程师,通过标准化基准测试配置和技能文档,提升优化效率和协作。系统影响:确保 nightly 比较的准确性,促进性能回归检测;技能流简化可能减少维护开销。团队影响:强化文档指导,帮助团队识别现有快速路径,减少重复工作。

基准测试逻辑变更 文档与代码不一致 文件删除影响工作流

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本 PR 对齐了扩散模型的 nightly 基准测试预设和技能文档,以 LTX-2 双阶段模型为中心,扩展了融合 QK norm + RoPE 等优化机会指导。通过更新脚本、文档和删除冗余文件,提升了开发效率,但需注意基准测试逻辑中 denoise 延迟计算的正确性风险。

功能与动机

主要动机是统一扩散模型的 nightly 比较配置和文档,确保优化工作优先利用现有快速路径。PR body 强调围绕 LTX-2 案例对齐配置,并添加缺失机会指导(如 fused QK norm + RoPE 和 Nunchaku fused GELU MLP),以避免重复造轮子并提升性能优化效率。

实现拆解

  • 测试组织:重命名 Z-Image 融合调制测试文件到 jit_kernel/tests/diffusion/,提高模块化。
  • 技能文档更新:修改多个 SKILL.md 文件(如 sglang-diffusion-benchmark-profilesglang-diffusion-ako4all-kernel),集成 LTX-2 案例、简化技能流并移除未使用的 Triton/CUDA 内核技能,聚焦于基准测试和机会发现。
  • 基准测试脚本:在 bench_diffusion_denoise.py 中添加 LTX-2 预设,更新 denoise 延迟计算逻辑以聚合多个阶段(如 LTX2AVDenoisingStage 和 LTX2RefinementStage)。
  • CI 集成:扩展 run_comparison.py 的 payload 处理,支持 FPS 和 negative_prompt 等新参数,确保 nightly 比较兼容性。
  • 性能分析:修改 profiler.py,添加 _resolve_profiler_log_dir 函数,统一日志目录解析。
  • 清理工作:删除未使用的脚本和文档文件(如 nsight-profiler.mdbench_diffusion_rmsnorm.py),减少维护负担。

评论区精华

review 中仅有一个评论,聚焦于 bench_diffusion_denoise.py 的 denoise 延迟计算逻辑:

"The current logic only sets denoise_latency_s if denoise_stage_total_ms is strictly greater than 0.0. While unlikely, if matching stages were found but their durations were exactly 0.0, the script would fall back to denoise_steps_ms. It might be more robust to track if any matching stages were found at all, regardless of their duration, to avoid unnecessary fallback when the primary metric source is present."
此讨论点出了潜在的正确性问题,建议改进逻辑以更鲁棒地处理边界情况,但目前尚未解决。

风险与影响

  • 技术风险:denoise 延迟计算逻辑可能在阶段持续时间为 0 时出错,导致性能指标不准确;文档更新若与代码脱节,可能误导开发者;删除技能文件可能中断依赖这些文件的开发工作流。
  • 影响范围:影响扩散模型性能优化团队,通过标准化基准测试和文档,提升协作效率;系统层面,确保 nightly 比较的准确性,促进持续集成;技能流简化可能减少维护开销,但需确保过渡平滑。

关联脉络

本 PR 是扩散模型优化生态的一部分,与历史 PR 如 #21080(FA4 推测解码支持)、#22038(VLM 编码优化)等协同,共同推进 SGLang 在多模态和性能方面的发展。它强化了文档和配置对齐,为后续内核优化提供坚实基础,并反映了团队在提升开发体验和性能可观测性方面的持续投入。

参与讨论