模型部署总览
本节是模型部署章节的入口。当您已经完成模型量化与编译、拿到 hbm 模型后,可以从本节了解上板部署这一段完整的动作序列,以及每个阶段的输入、产出、重点检查项与异常排查入口。
阅读本节的前置条件是已经通过 ONNX 或 PyTorch 链路完成模型量化与编译,并得到可上板运行的 hbm 模型。
部署链路术语与产物对照表
在进入具体阶段前,先通过下表对齐模型部署链路涉及的关键术语与产物:
模型部署全流程阶段表
模型部署按实际使用顺序拆分为以下阶段:输入输出规则确认 → 环境与依赖准备 → 应用工程开发 → 板端运行验证 → 性能与精度评测 → 资源评估与调优。
每一步的输入、输出、是否必选、重点检查与异常跳转参考下表:
| 阶段 | 输入 | 主要输出 / 产物 | 是否必选 | 重点检查 | 不满足需求时建议查看 |
|---|---|---|---|---|---|
| 输入输出规则确认 | hbm 模型 | 明确的 validShape / stride / alignedByteSize | 是 | 模型输入是否存在动态维度,stride 是否需要按平台补对齐 | 参考 对齐规则 与 动态输入介绍 章节 |
| 环境与依赖准备 | 开发板、交叉编译器 | 可运行的板端环境 | 是 | 依赖库是否已上传板端,LD_LIBRARY_PATH 是否已设置 | 参考 环境部署 与 基础示例包使用说明 章节 |
| 应用工程开发 | hbm 模型、UCP 接口 | 可执行的推理程序 | 是 | 内存申请是否满足首地址对齐,输入数据是否按 stride 排布 | 参考 模型推理应用开发指导 与 对齐规则 章节 |
| 板端运行验证 | 推理程序、输入数据 | 单帧推理结果 | 是 | 板端结果与 quantized_model.bc 是否一致 | 参考 ONNX 模型部署一致性分析 或 PyTorch 模型部署一致性分析 章节,以及 UCP 常见问题 章节 |
| 性能与精度评测 | hbm 模型 | Latency / FPS 指标、数据集精度报告 | 是 | 评测时是否有其他程序占用资源 | 参考 板端评测 与 性能调优指导 章节 |
| 资源评估与调优 | 运行中的推理程序 | 硬件 IP 占用率与内存信息 | 否 | 多模型场景下是否存在资源争抢 | 参考 板端资源评估 章节,以及 模型优先级控制 小节 |
部署路径选择
进入应用开发阶段时,您可以根据目标选择以下两条路径:
-
从基础示例包快速跑通:直接使用 OE 发布物
samples/ucp_tutorial/dnn/下的基础示例包,编译后在板端运行00_quick_start示例,先确认板端环境、依赖库与模型链路都是通的,再以示例代码为起点改造成自己的工程。适合首次上板、需要尽快拿到一个可运行结果的场景,详见 基础示例包使用说明 章节。 -
按开发指导从零搭建工程:按工程创建、工程实现、工程编译与运行三个阶段自行搭建 cmake 工程,并在此基础上使用多模型控制策略与应用调优建议。适合需要与既有应用框架集成、或对任务调度有定制要求的场景,详见 模型推理应用开发指导 章节。
两条路径使用的是同一套 UCP 接口,差别只在于起点,您可以先用基础示例包验证环境,再切换到自建工程。
前置提示
在进入具体阶段前,请留意以下前置提示:
-
板端推理结果应与
quantized_model.bc一致。若不一致,请优先排查输入数据准备与对齐处理,而不是先怀疑模型本身。 -
不同平台的输入输出对齐要求不同,具体差异请查看 平台差异说明 章节的输入输出处理差异一节。
-
若模型精度在量化阶段就未达标,请先回到量化链路解决,部署阶段无法解决量化本身的问题。
-
性能评测结果受平台硬件能力影响,跨平台对比性能指标时需要先确认平台型号。
