用途:对 sglang、vLLM、TensorRT-LLM、TokenSpeed 的 torch.profiler 结果做统一分析,支持检查已有 trace.json(.gz) 或对在线服务做 profiling,并汇总 prefill/decode 中占主导的 kernel 家族、映射回 Python 代码路径、判断是否仍有 overlap 机会、检查已知融合或 overlap 路径是否应生效。
主要能力:唯一公开工作流为 triage,统一入口 scripts/analyze_llm_torch_profile.py,兼容旧入口 scripts/analyze_sglang_torch_profile.py,另有 Markdown 打包脚本 scripts/render_triage_markdown_bundle.py。triage 固定输出 kernel、overlap-opportunity、fuse-pattern 三张表,默认只显示累计 GPU 时间占比不低于 1.0% 的行。fuse-pattern 表要求有来源依据且确定性,不做模糊匹配;若精确匹配弱但 kernel 簇接近已知家族,可在表后附一条 high/medium/low 说明。
使用方式:已有 trace 用 python3 scripts/analyze_llm_torch_profile.py --input /path/to/profile_dir_or_trace.json.gz。在线采集按框架加 --framework sglang|vllm|trtllm|tokenspeed 与 --url,默认按 prefill(输入 4090、输出 1)和 decode(输入 1、输出 2048)两个工作负载分别采集,默认 warmup 10 步、采集 5 步,可用 --profile-workload both|prefill|decode|legacy 及 --prefill-input-len 等覆盖。vLLM 需服务端启用 torch profiler 且 --output-dir 与 torch_profiler_dir 一致;TensorRT-LLM 需服务暴露 /start_profile 与 /stop_profile 并共享 trace 路径;TokenSpeed 需服务暴露 profiler 路由。
限制:TensorRT-LLM 若未暴露 profiler 控制端点,只能分析已有 trace;TokenSpeed 实时采集依赖目标镜像暴露受支持的 profiler API。diffusion 相关 trace 若日志出现回退 diffusers 后端,应停止分析。资料未提供收费、价格与平台信息。