第6章 · 性能分析与部署


第6章 · 性能分析与部署

章节摘要:从 ORT_ENABLE_PROFILE 定位热点算子,用 SessionOptions 策略化调参,再在 CI 中固定 ONNX opset、ORT 版本与 EP 组合。性能工作从「手工改参数」升级为可观测、可回归的治理闭环。

本章要解决的问题

前五章把"怎么跑、在哪跑、怎么分资源、怎么压缩"都讲完了,第6章收口成两条线:怎么知道瓶颈在哪(Profiling)与怎么让性能可回归(策略化 + CI)。没有 profile,优化就是盲改;没有 CI 门禁,升级一次 ORT 或换一次 EP 就可能让线上指标静默恶化。

本节目标

  1. 生成并解读 ORT profile JSON
  2. 组装 low_latency / high_throughput 策略包
  3. 设计模型转换与推理的 CI 门禁

治理闭环总览

闭环的四步:Profile 定位热点 → 把调参沉淀成命名策略 → 策略随部署 manifest 发布 → CI 回归验证并回到第一步。性能不再是"上线前调一次",而是持续可观测、可回滚的工程活动。

核心方法与产出

环节 方法 产出物
定位 ORT_PROFILE / perf_test Top 算子耗时报告
调参 命名策略包 low_latency_edge 等
部署 metadata + manifest 版本契约
回归 CI 门禁 精度 + 延迟指纹

子章节

节 主题 核心问题 关键产出
6.1 Profiling 与瓶颈定位 40ms 花在了哪里 Top 算子 + 瓶颈分类
6.2 SessionOptions 调优参数 参数组合怎么管 命名策略包
6.3 部署模式与 CI 实践 升级后如何不翻车 版本契约 + CI 门禁

6.1 Profiling 与瓶颈定位

ORT_PROFILE、perf_test 与算子耗时占比。

6.2 SessionOptions 调优参数

策略单元与 Provider 专有选项。

6.3 部署模式与 CI 实践

云/边/端部署与版本契约。

前置与后续

  • 前置:第2章图优化(Profile 里的算子对应融合前后)、第3章 EP(热点归属)、第4章内存线程、第5章量化
  • 后续:本章是教程终点,但治理闭环持续运行
  • 贯穿线索:所有调优动作都要落到"可测量、可回归、可回滚"三原则

三原则与治理闭环

性能治理的三原则贯穿本章:可测量——没有 profile 不谈优化;可回归——每项改动进 CI 有基线对比;可回滚——策略与版本分离,出问题一条命令回滚。三原则把性能工作从"上线前调一次"变成"持续治理"。

原则 手段 反例
可测量 ORT_PROFILE + 指纹 凭感觉调参
可回归 CI 门禁 + 基线 升级后指标恶化
可回滚 策略版本化 参数散落代码

常见性能问题速查

症状 快速定位 章节
首帧慢 图优化级别 / conv algo 6.2
单算子占大头 Top 算子 6.1
换版本后漂移 参数映射 diff 6.2
升级后精度崩 版本契约 + 回归 6.3
P99 长尾 线程/内存 6.1
线上比离线慢 指纹 diff 6.1

调参记录模板

每次调参都留一条结构化记录,字段固定:日期、模型版本、ORT 版本、EP、策略名、改动参数、P50/P99 前后、业务指标、结论。这条记录是团队性能资产的原子单位——半年后没人记得的事,记录记得。

# 调参记录模板 - date: 2025-01-15 - model: model.onnx (sha256 前8位) - ort: 1.17.0 / ep: tensorrt - policy: cloud_trt_fp16_v2 - change: trt_max_workspace_size 1G -> 2G - p50: 9.1 -> 8.2 ms - p99: 15.4 -> 13.9 ms - metric: mAP 0.921 -> 0.920(噪声内) - conclusion: workspace 提升融合,保留 ​

术语表

术语 含义
ORT_PROFILE ORT 的 profiling 开关,输出 JSON trace
Performance Fingerprint 关键算子和 P99 的性能基线
Policy 命名的 SessionOptions 参数组合
Contract 模型 metadata 里声明的部署契约
Model Drift 线上分布偏移导致指标退化
作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U