Prhub

#22353 [SKILL] add torch profiler analysis workflow

原始 PR 作者 BBuf 合并时间 2026-04-09 12:53 文件变更 11 提交数 2 评论 2 代码增减 +5394 / -0

执行摘要

新增统一的 Torch Profiler 分析工作流程,提供内核分类、重叠分析和修复功能。

PR body指出,SGLang已有Torch Profiler跟踪,但缺少上游工具将跟踪转化为可操作表格。关联Issue #4描述了在B200硬件上对多个模型进行分析的需求,此PR上流了分析技能以支持重复的每模型分析,提升性能调试效率。

建议技术管理者关注此PR的设计决策,如两阶段跟踪分析和内核分类策略。工程师可精读 scripts/analyze_sglang_torch_profile.py 以了解性能分析最佳实践,并参考技能文档应用于实际模型分析。

讨论亮点

Review中仅有一个bot评论,无实质讨论或争议。PR author BBuf自行合并,表明变更已通过内部验证。关联Issue评论显示社区正面反馈,如@yuan-luo和@Fridge003的感谢,但无技术交锋。

实现拆解

实现拆解为:

1) 统一入口点 scripts/analyze_sglang_torch_profile.py,提供breakdown、overlap、triage、perfetto-fix四种子命令;
2) 内核分类脚本 analyze_sglang_llm_torch_profile.py,用于GPU时间分析和类别划分;
3) 重叠分析脚本 analyze_sglang_profiler_overlap.py,支持两阶段跟踪对比;
4) 共享帮助函数 profile_common.py,封装常用工具;
5) 技能文档和参考文件(如fuse-overlap-catalog.md),提供优化机会映射和启发式规则。

文件 模块 状态 重要度
scripts/analyze_sglang_torch_profile.py tools added 8.0
scripts/analyze_sglang_llm_torch_profile.py tools added 7.0
scripts/analyze_sglang_profiler_overlap.py tools added 7.0
.claude/skills/sglang-torch-profiler-analysis/SKILL.md documentation added 6.0
scripts/profile_common.py tools added 5.0

关键符号

run_profiler load_trace_json extract_trace_events classify_kernel analyze_overlap

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

评论区精华

Code Review 反馈 other

Reviewer gemini-code-assist[bot] 仅提供正面评论,无技术反馈,表明代码质量被认可。

结论:无争议,PR 已合并,变更被接受。 · 已解决

风险与影响

技术风险包括:

1) 新脚本的稳定性和错误处理可能不足,尤其在处理不同格式的trace文件时;
2) 与PyTorch版本或硬件(如B200 vs H100)的兼容性问题,可能影响分析准确性;
3) 文档和示例的准确性需要验证,若误导用户可能导致错误分析;
4) 分析工具本身无运行时风险,但依赖外部库如torch-profiler,版本升级可能引入breaking change。

影响范围:对开发者,提供了标准化的性能分析工具,简化调试和优化流程;对系统,无直接影响,因工具为离线分析;对团队,提升了性能调优效率,支持跨模型比较和持续集成。影响程度为中高,因改善了开发工作流,但未改变核心架构。

新工具稳定性 兼容性风险 文档完整性

关联 Issue

#4 一些例子

完整报告

参与讨论