6.3.1. 环境安装
本
6.3.1.1. 交付物使用说明
在X5 SDK交付包中的 ai_toolchain_package 目录
下载
// 示例版本为 V1.2.8,请根据X5 SDK交付包中 ai_toolchain_package 目录下的 release_note.txt 下载对应版本SDK
wget -c ftp://oeftp@sdk.d-robotics.cc/runtime_package/Ai_Toolchain_Package-release-v1.23.9-OE-v1.2.8.tar.xz --ftp-password=Oeftp~123$%
示例包源码目录结构说明
解压
// 示例版本为 V1.2.8,请根据X5 SDK交付包中 ai_toolchain_package 目录下的 release_note.txt 下载对应版本SDK
tar -xvf Ai_Toolchain_Package-release-v1.23.9-OE-v1.2.8.tar.xz
解压
ai_benchmark: 目录
下 提供 了 常见 的 分类、检测 和 分割 模型 的 评测 示例,包括 性能 评测 和 精度 评测 两 部分。 horizon_runtime_sample: 目录
下 提供 了 定点 模型 的 上板 示例。 package: 目录
下 包含 了 发布 物 运行 的 一些 基础 库 和 组件 board文件夹下 为 板端 可执行程序。 host文件夹下 为x86开发 环境 下 的 环境 依赖、工具 依赖 以及 模型 推理 相关 的libdnn库 和 头文件。
6.3.1.2. 开发机部署
对于
开发机准备
为了
| 硬件/操作系统 | 要求 |
|---|---|
| CPU | CPU I3以上 |
| 内存 | 16G或 |
| GPU(可 |
CUDA11.6、驱动 适配 1)GeForce RTX 3090 2)GeForce RTX 2080 Ti 3)NVIDIA TITAN V 4)Tesla V100S-PCIE-32GB 5)A100 |
| 系统 | Ubuntu 20.04 |
更
使用Docker环境
为了
在
Docker(19.03或
更 高 版本,建议 安装19.03版本), Docker安装 手册 。NVIDIA Container Toolkit(1.13.1-1.13.5,建议
安装1.13.5),详见NVIDIA Container Toolkit 安装 手册 。
完成Docker环境
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
获取
镜像文件
CPU版本docker:
openexplorer/ai_toolchain_ubuntu_20_x5_cpu:{version}GPU版本docker:
openexplorer/ai_toolchain_ubuntu_20_x5_gpu:{version}
小
执行命令
时 将 {version}替换为 您 根据 X5 SDK交付包中的 ai_toolchain_package目录下 获取 到 的 版本信息 本地Docker镜像
包 版本,可以 联系 技术支持 团队 获取。 开发
机并 不是 必须 含有GPU卡,一般 使用CPU开发 机 加载Docker镜像 即可 做 模型 转换!
每个
镜像
拉取 命令 为: docker pull openexplorer/ai_toolchain_ubuntu_20_x5_cpu:v1.2.8
然后
CPU开发
机Docker容器 执行 以下 命令: // 运行 docker 镜像的命令 export version=v1.2.8 export ai_toolchain_package_path=/home/users/xxx/ai_toolchain_package export dataset_path=/home/users/xxx/data/ docker run -it --rm \ -v "$ai_toolchain_package_path":/open_explorer \ -v "$dataset_path":/data \ openexplorer/ai_toolchain_ubuntu_20_x5_cpu:"${version}"
GPU开发
机 Docker容器 执行 以下 命令: // 运行 docker 镜像的命令 export version=v1.2.8 export ai_toolchain_package_path=/home/users/xxx/ai_toolchain_package export dataset_path=/home/users/xxx/data/ # 手动启动 GPU Docker 镜像 docker run -it --rm --gpus all \ # 在启动容器时,添加标记以启用GPU资源的访问 --shm-size=15g \ # 修改共享内存大小 -v "$ai_toolchain_package_path":/open_explorer \ -v "$dataset_path":/data \ openexplorer/ai_toolchain_ubuntu_20_x5_gpu:"${version}"
注意:
由于OE Docker镜像
构建 过程 中 配置 了 PATH和LD_LIBRARY_PATH等环境变量 的 值,未 使用 推荐 方式(如docker attach)进入 容器 可能 会 导致 环境变量 加载 不 正常 从而 导致 Cmake、GCC、CUDA等 工具 使用 异常。 若
希望Docker容器 退出 后 不 销毁,请 使用 命令行 docker run -it手动启动,不要 带上 --rm选项。若
希望Docker容器 启动 后 可 在 后台 执行,请 在 命令行 docker run -it后增加 -d选项,容器启动 后 会 返回 容器ID,此时 可 通过 docker exec -it {容器ID} /bin/bash命令再次 进入 容器。
小提示:
dataset_path为数据 集 文件目录,如果 该 目录 不 存在 会 导致 加载 问题,需要 创建 好后 再 运行 命令。 公共数据
集可 参考 以下 链接 下载:
至此,您hb_mapper --help 命令
[root@d67382e74eea open_explorer]# hb_mapper --help
Usage: hb_mapper [OPTIONS] COMMAND [ARGS]...
hb_mapper is an offline model transform tool provided by horizon.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
checker check whether the model meet the requirements.
infer inference and dump output feature as float vector.
makertbin transform caffe model to quantization model, generate runtime...
若hb_mapper工具
6.3.1.3. 开发板部署
开发板
算法Ai_Toolchain_Package-release-vX.X.X-OE-vX.X.X/package/ 安装包Ai_Toolchain_Package-release-vX.X.X-OE-vX.X.X/package/board 执行install脚本。
执行命令
bash install.sh ${board_ip}
注意:
${board_ip}是您 为 开发板 设置 的IP地址,请 确保 在 开发 机上 可以 访问 该IP。 成功
安装 后,重新启动 开发板,在 开发板 上 执行 hrt_model_exec可以验证 安装 是否 成功。
6.3.1.4. 版本管理工具使用说明
本
注意: 版本管理工具主要用于在使用Docker环境进行模型PTQ转换出现错误时做DEBUG使用,若模型转换功能正常,可跳过此章节阅读。
版本
ddk_vcs list;
ddk_vcs install;
ddk_vcs uninstall;
ddk_vcs patch;
ddk_vcs show;
ddk_vcs list
ddk_vcs list 用于
不
[horizon@gpu-dev067 ai_toolchain]$ ddk_vcs list
Host package version: x5 1.2.8
The following packages versions
Platform Package Version MD5
---------------- -------------- ------- --------------
aarch_64 dnn 1.24.5 a4c77552d3
x86_64_gcc11.4.0 dnn_x86 1.24.5 39527daad7
x86_64_gcc11.4.0 horizon-nn 1.1.0 origin:1.1.0
x86_64_gcc11.4.0 horizon-nn-gpu N/A origin:N/A
x86_64_gcc11.4.0 horizon_tc_ui 1.24.3 origin:1.24.3
x86_64_gcc11.4.0 hbdk 3.49.15 origin:3.49.15
备注:
最后几行的origin信息会在每次使用工具链SDK包内的install脚本进行安装后更新为当前环境下的版本,
后续在使用ddk_vcs进行安装时则不会改变,只会改变Version的值。
使用 -p 参数ddk_vcs install 进行
[horizon@gpu-dev004]$ ddk_vcs list -l
Host package version: 1.2.8
The following packages versions
Platform Local Package Version MD5
---------------- --------------------- ------- ----------
aarch_64 dnn_1.24.5.tar.gz 1.24.5 a4c77552d3
x86_64_gcc11.4.0 dnn_x86_1.24.5.tar.gz 1.24.5 39527daad7
ddk_vcs install
ddk_vcs install 用于ddk_vcs install 将
[horizon@gpu-dev004]$ ddk_vcs install dnn_1.17.3d.tar.gz -p aarch_64
dnn installed successfully, version: 1.17.3d, platform: aarch_64
[horizon@gpu-dev004]$ ddk_vcs install hbdk-3.44.7-cp38-cp38-linux_x86_64.whl horizon_nn-0.17.1-cp38-cp38-linux_x86_64.whl
hbdk-3.44.7-cp38-cp38-linux_x86_64.whl installed successfully
horizon_nn-0.17.1-cp38-cp38-linux_x86_64.whl installed successfully
在ddk_vcs list -l 后ddk_vcs install 可以
[horizon@gpu-dev004]$ ddk_vcs install dnn==1.15.2 --platform aarch_64
dnn installed successfully, version: 1.15.2, platform: aarch_64
如果
ddk_vcs uninstall
ddk_vcs uninstall 用于
[horizon@gpu-dev004]$ ddk_vcs uninstall dnn --platform aarch_64
Start to uninstall modules, platform: aarch_64
dnn uninstalled successfully, version: 1.17.3d, platform: aarch_64
ddk_vcs patch
使用 ddk_vcs patch ddk_patch.tar.gz 可以
[horizon@gpu-dev004]$ ddk_vcs patch ddk_patch.tar.gz
dnn installed successfully, version: 1.15.2_patch0, platform: aarch64
ddk_vcs show
ddk_vcs show 用于ddk_vcs show [模块名] ,可以
[horizon@gpu-dev004]$ ddk_vcs show dnn
Host package version: x5 1.2.8
The following packages versions
Platform Package Version MD5
-------- ------- ------- ----------
aarch_64 dnn 1.24.5 a4c77552d3