专栏硬件技术【地平线征程5域控试用】(二)

【地平线征程5域控试用】(二)

Darth Nihilus2026-04-28
824
3

(三)Open Explorer

什么是OE

OE是Open Explorer的缩写简称,中文名为天工开物(以下简称OE),它是基于地平线自研计算平台打造的全生命周期开发平台, 主要包括模型编译优化工具集、算法仓库和应用开发SDK三大功能模块。基于这三大功能模块开发的应用参考解决方案,为智能驾驶、智能物联网等行业方案提供了案例支撑。

1. 模型编译优化工具集:聚焦于智能业务场景,包括完成算法模型转换与编译流程中所涉及到的一系列软件工具集,提供模型量化、优化、编译、调试等功能。

2. 算法仓库:贴合时下智驾领域的基础算法结构,和重点业务算法技术点,地平线提供了丰富的开源最佳实践,赋能地平线合作伙伴更快、更省地开发出自己的智能产品。

3. 应用开发SDK:提供丰富的基础接口与工具,支撑业务算法在征程平台的部署,可以完整支撑客户在仿真和物理环境下的部署全流程。

OE可以为地平线合作伙伴提供丰富多样的算法资源、灵活高效的开发工具和简单易用的开发框架。 OE的特色和优势可以概括为以下四个方面:

工具链

地平线J5算法工具链(以下简称工具链)是一套完整的边缘计算平台算法落地解决方案,可以帮助您把浮点模型量化为定点模型, 并在地平线计算平台上快速部署自研算法模型。

目前在GPU上训练的模型大部分都是浮点模型,即参数使用的是float类型存储。地平线BPU架构的计算平台使用的是int8的计算精度(业内计算平台的通用精度),能运行定点量化模型。

从训练出的浮点精度转为定点模型的过程,我们称之为量化。同时模型量化后能够有效减少模型大小,加速深度学习推理的速度,因此也在学术界和工业界被广泛研究和应用。

依据是否要对量化后的参数进行调整,我们可以将量化方法分为训练后量化(PTQ)和量化感知训练(QAT)。 这两种方法的操作区别如下图所示(图左为PTQ,图右为QAT):

训练后量化PTQ是使用一批校准数据对训练好的模型进行校准,将训练过的FP32模型直接转换为定点计算的模型,过程中无需对原始模型进行任何训练,只需要对几个超参数进行调整就可以完成量化过程, 且过程简单快速,无需训练,因此该方法已被广泛地应用于大量的端侧和云侧部署场景。

量化感知训练QAT是将训练过的模型量化后又再进行重训练。由于定点数值无法用于反向梯度计算,实际操作过程是在某些OP前插入伪量化节点(fake quantization nodes), 用于在训练时获取流经该OP的数据的截断值,便于在部署量化模型时对节点进行量化时进行使用。需要在训练中通过不断优化精度来获取最佳的量化参数。

工具链由PTQ、QAT和嵌入式编译等部分组成,工具链组成示意图如下:

其中:

Runtime SDK 提供了异构模型的运行库支持,运行库包含arm和x86两个部分,分别用于在地平线计算平台和X86仿真平台执行异构模型。

工具链的整体使用流程如下图所示。

关键概念

- 原始浮点模型

指通过TensorFlow/PyTorch等等DL框架训练得到的可用模型,这个模型的计算精度为float32。

- 混合异构模型

是一种适合在地平线计算平台上运行的模型格式,之所以被称为异构模型是因为它能够支持模型同时在ARM CPU和BPU上执行。 由于在BPU上的运算速度会远大于CPU上的速度,因此会尽可能的将算子放在BPU上运算。对于BPU上暂时不支持的算子,则会放在CPU上进行运算。

- hbm文件

即Horizon BPU Model,HBDK编译器生成的模型文件,hbm包含BPU指令、模型参数、输入输出描述等信息。

- 算子

深度学习算法由计算单元组成,我们称这些计算单元为算子(Operator,也称op)。 算子是一个函数空间到函数空间上的映射,同一模型中算子名称是唯一的,但是同一类型的算子可以存在多个。 如:Conv1、Conv2,是两个算子类型相同的不同算子。

- 模型转换

指的是将原始浮点模型或QAT转换得到的onnx模型转换为地平线混合异构模型的过程。

- 模型量化

目前工业界最有效的模型优化方法之一,量化是指定点与浮点等数据之间建立一种数据映射关系,使得以较小的精度损失代价获得了推理性能收益,可简单理解为用“低比特”数字表示FP32等数值,如FP32–>INT8可以实现4倍的参数压缩,在压缩内存的同时可以实现更快速的计算。

- PTQ

即训练后量化方案,先训练浮点模型,然后使用校准图片计算量化参数,将浮点模型转为量化模型的量化方法。更详细的介绍可参考 PTQ、QAT简介 章节。

- QAT

即量化感知训练方案,在浮点训练的时候,就先对浮点模型结构进行干预,使得模型能够感知到量化带来的损失,减少量化损失精度的方案。更详细的介绍可参考 PTQ、QAT简介 章节。

- 张量

张量,也称Tensor,具备统一数据类型的多维数组,作为算子计算数据的容器,包含输入输出数据。 张量具体信息的载体,包含张量数据的名称、shape、数据排布、数据类型等内容。

- 数据排布

深度学习中,多维数据通过多维数组(张量)进行存储,通用的神经网络特征图通常使用四维数组(即4D)格式进行保存,即以下四个维度:

- N:Batch数量,如图片的数量。

- H:Height,图片的高度。

- W:Width,图片的宽度。

- C:Channel,图片的通道数。

但是数据只能线性存储,因此四个维度有对应的顺序,不同的数据排布(format)方式,会显著影响计算性能。 常见的数据存储格式有NCHW和NHWC两种:

- - NCHW:将同一通道的所有像素值按顺序进行存储。

- - NHWC:将不同通道的同一位置的像素值按顺序进行存储。

如下图所示:

- 数据类型

下文常用到的图片数据类型包括rgb、bgr、gray、yuv444、nv12、featuremap。

- rgb、bgr和gray都是比较常见的图像格式,每个数值都采用UINT8表示。

- yuv444也是一种常见的图像格式,它的每个数值都采用UINT8表示。

- nv12是常见的yuv420图像格式,每个数值都采用UINT8表示。

- featuremap适用于以上列举格式不满足您需求的情况,此type每个数值采用float32表示。例如雷达和语音等模型处理就常用这个格式。

Open Explorer 安装

Open Explorer 安装硬件要求

硬件/操作系统

要求

CPU

CPU I3以上或者同级别E3/E5的处理器

内存

16G或以上级别

GPU

CUDA11.6、驱动版本Linux:>= 510.39.01* (推荐驱动版本Linux:515.76)

系统

Ubuntu 20.04

Open Explorer 安装

Open Explorer 依赖安装

Open Explorer 安装

Open Explorer 包管理

列出已安装的软件包

对安装包进行安装

显示有关已安装软件包的信息

卸载指定模块

硬件技术
杂谈征程5
评论2
0/1000
  • <h1>Forik</h1>
    Lv.1
    {"message":"","receiver":"71036525692881078"}
    2026-05-06
    0
    0
  • <h1>Forik</h1>
    Lv.1
    {"message":"","receiver":"71036525692881078"}
    2026-05-06
    0
    2
    • <h1>Forik</h1>回复<h1>Forik</h1>:

      {"message":"","receiver":"71036525692881078"}

      2026-05-06
      0
    • <h1>Forik</h1>回复<h1>Forik</h1>:

      {"message":"","receiver":"71036525692881078"}

      2026-05-06
      0