用途:对 LLM 推理框架的 torch.profiler 轨迹做统一分诊(triage),覆盖 sglang(含 SGLang Omni,仍走 --framework sglang)、vllm、TensorRT-LLM、TokenSpeed。可分析已有轨迹/目录,也可对在线服务抓取;用于判断 prefill 或 decode 中主导的 kernel 家族、将 kernel 映射回 Python 代码路径、评估是否仍有 overlap 机会、检查已知融合路径是否应生效。
主要能力:唯一公开工作流为 triage,固定输出 kernel、overlap-opportunity、fuse-pattern 三张表;默认仅显示累计 GPU 时间占比 ≥1.0% 的行。融合表要求有源码依据且确定性,不做模糊匹配;匹配较弱时可在表后附 high/medium/low 备注。能力矩阵区分已有轨迹分诊、单轨迹实时抓取、双轨迹 mapping+formal 分诊、分阶段实时负载等。
使用方式:统一入口为 scripts/analyze_llm_torch_profile.py,兼容入口 scripts/analyze_sglang_torch_profile.py,Markdown 打包为 scripts/render_triage_markdown_bundle.py。已有轨迹:python3 scripts/analyze_llm_torch_profile.py --input /path/to/profile_dir_or_trace.json.gz。在线抓取按框架追加 --framework、--url、--output-dir、--num-steps、--warmup-steps、--profile-workload 等参数;默认分阶段抓取 prefill(输入 4090、输出 1)与 decode(输入 1、输出 2048),预热 10 步、抓取 5 步。vLLM 要求 --output-dir 与服务器 torch_profiler_dir 一致;TensorRT-LLM 需服务暴露 /start_profile、/stop_profile 且路径共享。
适用场景:kernel 归因、Python 源码映射、overlap 余量判断、融合路径核对、按 prefill/decode 分段对比。
限制:SGLang 实时抓取路径未在 Omni 服务器上验证;vLLM 需启用 torch profiler;TensorRT-LLM 需要 profiler 控制端点与共享轨迹路径,否则退回已有轨迹分析;TokenSpeed 实时抓取仍需已有 torch-profiler 轨迹,直到目标镜像暴露受支持 API。diffusion 相关若日志出现回退到 diffusers 后端,应停止分析并视为后端选择问题。轨迹根目录建议放在 /data/... 下。模型、GPU、验证矩阵及时间等细节以原资料为准,未提供的价格、平台等事实暂未提供。