[具身智能-653]:地平线 .bin 与 .hbm 模型文件完整对比 + 技术发展背景说明
前置重要定义.binRT Model Bin旭日 X3Bayes 一代 BPU部署最终模型文件.hbmHorizon Binary Model征程 5/J5、征程 6/J6、RDK X5Bayes2/Nash 二代 BPU部署最终模型文件两者分属两代 BPU 架构产物指令集完全隔离文件不能跨芯片直接复用。一、发展历史背景理解两种格式诞生的根本原因1..bin的诞生背景Bayes BPU / 旭日 X3 时代地平线第一代量产 BPU Bayes旭日 X3、RDK X3配套工具链hb_mapper V1。 工程痛点与设计取舍早期边缘 AI 开发者缺少编译链接工程化思想追求极简部署流程工具链采用一体化单阶段编译链路 ONNX → 图优化 → PTQ 量化 → 算子切分 → BPU 微指令生成 → CPU fallback 算子嵌入 →一步输出 .bin文件定位独立封闭单模型包✅ 优势上手简单一条命令产出可用模型 ❌ 历史遗留缺陷一个 bin 只能存放单个神经网络多模型并发推理时多个 bin 独立加载公共骨干权重无法共享DDR 内存占用高模型无法拆分、复用、增量更新CPU fallback 算子直接打包进模型耦合度极高不支持动态输入 shape、多 batch 高级特性。适用平台旭日 X3、RDK X3、X3PiRuntime旧版hb_dnnAPI。2..hbm的诞生背景Bayes2/Nash BPU / J5/RDK X5/J6随着大模型、多任务视觉方案检测 跟踪 分类 分割普及.bin的架构短板凸显。地平线推出新一代工具链HBDK V2 / OE Toolchain V2借鉴 C/C「编译→链接」思想重构模型编译流程 新增中间文件.hboHorizon Binary Object模型目标文件 完整链路ONNX → convert → compile → 输出 .hbo单模型目标文件不可直接运行 → link 链接器 → 打包生成 .hbm设计目标支持多模型打包一个 hbm 内部容纳多个网络链接阶段自动识别共享权重如多任务共用 Backbone权重去重降低内存占用模型模块化管理支持单独编译、增量链接适配新一代 BPU 指令集原生支持动态 shape、FP16 混合量化、更多硬件算子解耦模型与 CPU 算子降低耦合。适用平台RDK X5、征程 5 (J5)、征程 6 (J6)Runtime全新hrt_runtime(HRT)API与 hb_dnn 完全不兼容。二、.bin VS .hbm 结构化对比表表格对比维度.binX3 系列.hbmX5/J5/J6 系列硬件载体Bayes 一代 BPU旭日 X3/RDK X3Bayes2 / Nash BPURDK X5、J5、J6工具链hb_mapper V1.xHBDK 2.0 / OE Toolchain V2.x编译链路单阶段一体化编译hb_mapper makertbin两段式编译 链接compile → .hbo → link → .hbm文件本质单模型独立运行时镜像多模型容器链接输出产物模型容纳能力仅支持单个网络支持单个 / 多个网络封装权重共享不支持多模型需加载多个 bin权重重复链接阶段自动合并共享权重节省 DDR运行时 APIhb_dnn旧一代接口hrt_runtime全新 HRT 接口互不兼容动态 Shape支持能力弱限制较多原生完善支持动态输入尺寸量化支持以 INT8 为主FP16 支持有限INT8 / FP16 混合量化策略更丰富模型拆分不可拆分整体打包支持模块化编译、增量链接跨平台兼容性仅 X3 系列无法在 X5 加载仅 X5/J5/J6无法在 X3 加载Fallback 算子CPU 算子直接嵌入 bin 文件耦合高CPU 算子与模型文件解耦灵活扩展Netron 支持所有版本 Netron 均可打开需要较新版本 Netron 解析三、关键工程结论不能直接转换无法把 X3 的.bin 文件转换成 X5 可用的.hbm必须使用新版工具链重新量化、编译项目选型原则存量 RDK X3 旧项目维持.bin新项目 RDK X5 / 征程 5/6强制使用.hbm迁移成本模型重新编译 C 推理代码全套 API 从 hb_dnn 迁移至 hrt_runtime四、常见误区澄清❌ 误区改后缀名就能跨芯片运行 ✅ 正解内部 BPU 微指令集完全不同修改后缀直接加载会初始化失败❌ 误区.hbo可以直接推理 ✅ 正解.hbo只是编译中间目标文件必须 link 打包为 hbm 才能被 runtime 加载❌ 误区.bin 里的校准 bincalibration bin 推理模型 bin ✅ 正解校准用 bin 是图像数组和 BPU 推理模型.bin 是完全不同的两类文件。

相关新闻