Rspress

# #环境部署

## #前言

地平线OpenExplorer目前同时提供了2套模型量化方案：

- PTQ：Post-training Quantization，训练后量化。
- QAT：Quantization aware training，量化感知训练（暂时只支持Pytorch框架）。

其中：

- 两套方案均不干预浮点模型的训练阶段，您需要自行负责。地平线也在 `samples/ai_toolchain/horizon_model_train_sample` 路径下开源了一些分类/检测/分割等场景高效模型的公版Pytorch实现以供参考，并支持在宿主机上进行训练和复现。

- 对于PTQ方案，您需要在宿主机的开发环境完成模型的量化转换，再将编译生成的 `.hbm` 模型拷贝至开发板环境完成后续的部署工作。

- 对于QAT方案，您则需要在宿主机的开发环境先完成模型的QAT训练，再进行量化转换，再将编译生成的 `.hbm` 模型拷贝至开发板环境完成后续的部署工作。

两种量化方案以及高效模型的开发环境，地平线都提供了Docker容器和本地手动安装两种方式。 我们强烈建议您使用不污染本地环境且使用方便的Docker容器，以下也将分别对这两种方式进行介绍。

## #开发环境部署

### #开发机准备

为了顺利地使用工具链，地平线建议您选择的开发机应满足以下要求：

硬件/操作系统 | 要求
--- | ---
CPU | CPU I3以上或者同级别E3/E5的处理器
内存 | 16G或以上级别
GPU | CUDA12.6、驱动版本Linux:>= 550.163.01 适配显卡包括但不限于： 1. GeForce RTX 3090 2. GeForce RTX 2080 Ti 3. NVIDIA TITAN V 4. Tesla V100S-PCIE-32GB 5. A100
系统 | 原生Ubuntu 22.04

更多关于CUDA与显卡的兼容性问题请参考 NVIDIA官网信息 。

### #Docker容器部署

#### #Docker基础环境

地平线要求的Docker基础环境如下，请提前在您的宿主机上完成安装：

- Docker（20.10.10或更高版本，建议安装20.10.10版本），详见 Docker安装手册 。
- NVIDIA Container Toolkit（1.16.2或更高版本，建议安装1.17.8），详见 NVIDIA Container Toolkit安装手册。

完成Docker基础环境安装后，还需要将无root权限的用户添加到Docker用户组中。参考命令如下：

`sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart`

#### #Docker镜像使用

为了帮助您快速使用工具链，我们提供了包含完整开发环境的Docker镜像，大大简化了开发环境的部署过程。

小技巧

若您已下载离线镜像，需先使用下方命令将镜像加载到本地。

`docker load -i ai_toolchain_ubuntu_22_s100_s600_xxx.tar.gz`

您可以在OE包的一级目录下直接运行以下脚本启动当前OE版本所对应的Docker容器：

`bash run_docker.sh data/`

其中， `data` 为评测数据集文件夹路径，请提前创建好后再运行命令，否则将导致加载问题。

若您想要使用CPU版本Docker镜像则需要增加 `cpu` 参数：

`bash run_docker.sh data/ cpu`

OE包示例所依赖的相关公开评测数据集的下载链接可参考 数据集下载 章节的介绍进行获取。

如果您希望手动启动Docker容器，可以参考下方命令，其中 `{version}` 为您当前所用的OE版本号。

注解

为方便使用，我们为您提供了两种CPU Docker以及GPU Docker，可按需选择。

注意

1. 由于OE Docker镜像构建过程中配置了 `PATH` 和 `LD_LIBRARY_PATH` 等环境变量的值，未使用推荐方式（如docker attach）进入容器可能会导致环境变量加载不正常从而导致Cmake、GCC、CUDA等工具使用异常。
2. 若希望Docker容器退出后不销毁，请使用命令行 `docker run -it` 手动启动，不要带上 `--rm` 选项。
3. 若希望Docker容器启动后可在后台执行，请在命令行 `docker run -it` 后增加 `-d` 选项，容器启动后会返回容器ID，此时可通过 `docker exec -it {容器ID} /bin/bash` 命令再次进入容器。

### #本地手动安装

本节将为您介绍本地手动安装环境方法，并分别介绍两种量化方案和地平线开源的高效模型训练的环境相关依赖及说明。 我们推荐您在浮点模型训练完成后优先选择简单易用的PTQ量化方案，只在精度问题确实无法解决时再切换到QAT量化方案。

#### #本地手动安装环境方法

本地手动安装环境，可进入package/host文件夹，安装所需文件。

#### #PTQ量化环境依赖

PTQ量化方案对于开发机操作环境的基础软件依赖如下：

- 操作系统：Ubuntu22.04
- Python3.10
- libpython3.10
- python3-devel
- python3-pip
- gcc&g++: 12.2.1
- graphviz

#### #QAT量化环境依赖

QAT量化环境在本地环境进行安装，需要先确保已满足以下基础环境条件。 量化训练工具能够训练起来所必需的环境依赖如下表：

硬件/操作系统 | GPU | CPU
--- | --- | ---
os | Ubuntu22.04 | Ubuntu22.04
cuda | 12.6 | N/A
python | 3.10 | 3.10
torch | 2.6.0+cu126 | 2.6.0+cpu
torchvision | 0.21.0+cu126 | 0.21.0+cpu
推荐显卡 | titan v/2080ti/v100/3090 | N/A

在完成QAT模型的训练后，您可以在当前训练环境安装相关工具包，并直接通过接口调用的方式完成后续的模型转换工作。

## #运行环境部署

当模型完成量化转换后，即可将编译好的模型部署在开发板环境推理运行。运行环境的部署需要您先准备好一块烧写好系统镜像的 开发板，再将相关补充文件拷贝到开发板中即可。

### #开发板准备

此阶段需要验证下开发板的可用性，将可用系统镜像烧写到开发板中。

### #板端工具安装

工具链的部分补充工具未包含在系统镜像中，但可以在宿主机环境下执行OE包中的安装脚本将其拷贝至开发板，其参考命令如下：

`cd package/board/hrt_model_exec bash build_aarch64.sh`
注解

hrt_model_exec成功编译后，请将生成的output_shared_runtime_aarch64拷贝到开发板的可写路径，运行script中的脚本即可使用该工具。

页面目录