芯片算法工具链FAQ手册v1.0.3

手册目录

备注

为了方便大家理解,文末 附录1 提供了工具链基础使用流程图,以上 FAQ 手册分别与其中的某一个流程对应。一些基础概念的 FAQ 请见下文。


工具链基础概念

【FAQ-001】 如何理解地平线芯片算法工具链?

答:地平线 OpenExplorer(简称OE,中文名为天工开物)是基于地平线自研芯片打造的开发平台,主要包括芯片工具链、芯片算法仓库和应用开发 SDK 三大功能模块, 而芯片算法工具链主要负责深度学习模型的量化、编译和端侧部署工作。更多信息可参考《工具链用户手册》第一章。 其中,“模型量化”是以尽可能小的精度损失代价,将模型的权值、激活值等从高精度转换至低精度的操作,从而降低芯片功耗,提升计算速度,减少内存和存储占用等,是嵌入式端的常用方法。 更多信息可参考: 神经网络量化背景

【FAQ-002】 J5芯片工具链相比于XJ3有哪些能力提升?

答:地平线的芯片算法工具链是一个持续迭代演进的软件产品,具备向前兼容性(使用方式保持一致),并能随着芯片能力增强而提供更加丰富的算子支持范围和更少的算子支持约束,以及更多的硬核能力支持。 下表为征程 3 和征程 5 芯片工具链的能力对比:

征程3

征程5

较多约束下的算子支持

更多BPU算子支持,并大幅放宽算子约束

不支持非4维算子

对非4维算子更友好的支持

支持CPU自定义算子

支持CPU和DSP自定义算子

提供基础的应用、模型示例

提供更加丰富的应用、模型示例

支持激光雷达模型

支持光流、激光雷达、BEV等更多场景模型

/

支持Transformer模型

【FAQ-003】 如何查找工具链用户手册?

答:在线版本请从开发者社区 产品中心-资源中心 获取;离线版本请从 OE 包的 doc 目录获取。

【FAQ-004】 如何理解地平线PTQ与QAT方案的差异?

答:地平线目前支持两种模型量化方案:PTQ(Post-Training Quantization,模型后量化)和 QAT(Quantization-aware Training,量化感知训练)。两种方案的异同主要如下:
  1. PTQ 方案 仅需要准备一批训练集/验证集数据作为校准数据即可直接完成模型量化,简单便捷;

  2. QAT 方案 则需要进行类似 finetuning 的 QAT 训练,所以成本和上手难度相对较高,但量化精度损失也更加可控。地平线的 QAT 方案与 Pytorch 社区基本一致;

  3. 以上两种方案量化得到的定点模型,在端侧都采用统一的 runtime API 进行部署,所以代码切换代价小。

综上所述,地平线建议用户优先尝试 PTQ 方案,在遇到量化精度损失实在无法解决的 corner case 再尝试切换到 QAT 方案。


附录

附录1 工具链基础使用流程图

_images/workflow.jpg