2. Pulsar2 工具链概述#
2.1. 简介#
Pulsar2 由 爱芯元智 自主研发 的 all-in-one 新一代神经网络编译器,
即 转换、 量化、 编译、 异构 四合一, 实现深度学习神经网络模型 快速、 高效 的部署需求.
针对新一代 AX6、M7、M5 系列芯片(AX615、AX630C、AX637、AX620Q、AX650A、AX650N、M76H、M57H 等)特性进行了深度定制优化, 充分发挥片上异构计算单元(CPU+NPU)算力, 提升神经网络模型的产品部署效率.
特别说明:
- 工具链文档中的提示说明
Note: 注释内容,对某些专业词做进一步解释说明
Hint: 提示内容,提醒用户确认相关信息
Attention: 注意内容,提醒用户对工具配置的相关注意事项
Warning: 告警内容,提醒用户注意工具链的正确使用方法。如果客户没有按Warning提示内容进行使用,有可能会出现错误结果。
工具链文档中的命令兼容车载芯片,例如
Pulsar2支持M76H工具链文档中的 示例命令、 示例输出 均基于
AX650进行展示具体芯片的算力配置,以芯片SPEC为准
Pulsar2 工具链核心功能是将 .onnx 模型编译成芯片能解析并运行的 .axmodel 模型.
部署流程
2.2. 虚拟 NPU 介绍#
AX650 和 M76H NPU 主要由 3 个 Conv 卷积计算核,3 组向量 Vector 计算核组成。这些 Conv 和 Vector 计算核按照 1:1 的比例分配,划分为 3 组 vNPU。
在运行时,通过 AXEngine API 可以设置 NPU 的工作模式,灵活的对 vNPU 进行分组,可以设置为 1 + 1 + 1 的三个对称 vNPU 模式,或者 2 + 1 的大小 vNPU 模式,也可以设置为 3 的大算力单 vNPU 模式。
在转换模型时,可以根据需求灵活的指定模型推理所需的 vNPU 数量(详细信息请查看
pulsar2 build的--npu_mode 参数)。当模型部署到芯片平台上加载时,AXEngine 可以根据当前设置的 NPU 工作模式将模型分配到对应算力的 vNPU 之上运行。
AX630C、AX620Q 采用双核 NPU 设计,根据 AI-ISP 是否启用划分成两种工况分配给用户不同算力。
在转换模型时,需根据实际业务中 AI-ISP 的工况显式配置用户模型的 NPU 工作模式(详细信息请查看
pulsar2 build的--npu_mode 参数)。AX630C、AX620Q 中的 NPU 模块均采用爱芯元智 通元4.0 NPU 引擎,后续章节使用
AX620E简化目标硬件平台指定。
AX615 采用双核 NPU 设计,根据 AI-ISP 是否启用划分成两种工况分配给用户不同算力。
在转换模型时,需根据实际业务中 AI-ISP 的工况显式配置用户模型的 NPU 工作模式(详细信息请查看
pulsar2 build的--npu_mode 参数)。AX615 中的 NPU 模块均采用爱芯元智 通元6.0 NPU 引擎,后续章节使用
AX615简化目标硬件平台指定。
2.3. 后续章节内容引导#
Section3: 本章介绍使用 NPU 工具链进行模型转换和部署的软硬件环境准备和安装。如何在不同系统环境下安装
Docker并启动容器Section4:本章介绍 NPU 工具链在爱芯 AX650(包括AX650A,AX650N,M76H) 芯片平台上的基本应用流程
Section5:本章介绍 NPU 工具链在爱芯 AX620E(包括AX620Q,AX630C) 芯片平台上的基本应用流程
Section6:本章介绍 NPU 工具链在爱芯 AX615 芯片平台上的基本应用流程
Section7:本章介绍 NPU 工具链在爱芯 M57 芯片平台上的基本应用流程
Section8:本章为模型转换的进阶说明,即详细介绍如何利用
Pulsar2 Docker工具链将onnx模型转换为axmodel模型Section9: 本章为模型仿真的进阶说明,即详细介绍如何使用
axmodel模型在x86平台上仿真运行并衡量推理结果与onnx推理结果之间的差异度(内部称之为对分)Section10: 本章为模型上板运行的进阶说明,即详细介绍如何上板运行
axmodel得到模型在爱芯SOC硬件上的推理结果Section11: 本章对模型转换编译过程使用的配置文件进行详细说明
Section12: Caffe AI 训练平台导出的模型不是NPU工具链支持的
onnx格式,需要一个工具把 Caffe 模型转换成onnx模型。本章介绍这个模型转换工具的使用方法。Section13: 本章为模型板上速度和精度测试工具的使用说明
Section14: 本章为 QAT 4W8F 的简略使用说明
Section15: 本章为 NPU 工具链功能安全符合性的声明
附录:文档附录部分包括算子支持列表、精度调优建议
备注
所谓 对分, 即对比工具链编译前后的同一个模型不同版本 (文件类型) 推理结果之间的误差。