2. 环境部署

2.1. 简介

本章节介绍了在使用工具链前必须的环境准备工作,包含 开发机部署开发板部署 两个部分。

2.2. 开发机部署

对于开发机的环境部署,地平线支持使用Docker和手工安装两种方式,您只需要选择其中一种即可。

提示

地平线强烈建议您使用Docker方式,以避免在安装过程中出现问题。

2.2.1. 开发机准备

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

硬件/操作系统

要求

CPU

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

内存

16G或以上级别

GPU

CUDA11、驱动版本Linux:>= 450.80.02*

适配显卡包括但不限于:

1)GeForce RTX 3090

2)GeForce RTX 2080 Ti

3)NVIDIA TITAN V

4)Tesla V100S-PCIE-32GB

系统

CentOS 7、Ubuntu 18.04

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

2.2.2. 使用Docker环境

为了帮助您快速使用工具链,地平线提供了包含了完整开发环境的CPU和GPU Docker镜像,大大简化了环境的部署过程。

在阅读此部分内容前,我们希望您的开发机中已经预装好了Docker的基础环境。 地平线要求的Docker基础环境信息如下:

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

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker  # CentOS7/Ubuntu
# re-login

如果您使用CPU Docker,请从 地平线天工开物cpu docker hub 获取本节需要使用的CentOS Docker镜像。 CPU镜像文件命名形式为 openexplorer/ai_toolchain_centos_7_xj3:{version}

如果您使用GPU Docker,请从 地平线天工开物gpu docker hub 获取本节需要使用的Ubuntu Docker镜像。 GPU镜像文件命名形式为 openexplorer/ai_toolchain_ubuntu_gpu_xj3:{version}

小技巧

执行命令时将{version}替换为您获取到的版本号。

每个镜像文件在第一次使用前,需要拉取镜像。

  • CPU镜像拉取命令为:

    docker pull openexplorer/ai_toolchain_centos_7_xj3:{version}
    
  • GPU镜像拉取命令为:

    docker pull openexplorer/ai_toolchain_ubuntu_gpu_xj3:{version}
    

然后执行以下命令运行Docker容器。

  • CPU Docker容器执行以下命令:

    // 进入OE包首层路径
    cd horizon_xj3_open_explorer_{version}_{date}
    
    // 运行脚本进入CPU docker容器
    sh run_docker.sh /data
    
  • GPU Docker容器执行以下命令:

    // 进入OE包首层路径
    cd horizon_xj3_open_explorer_{version}_{date}
    
    // 运行脚本进入GPU docker容器
    sh run_docker.sh /data gpu
    

备注

在执行上述命令时:

  • {version}{date} 替换为您实际获取到的OpenExplorer发布包(简称OE包)版本和发布日期。 如: openexplorer/horizon_xj3_open_explorer_v1.7.0_20211101/

  • /data 为数据集文件目录,如果该目录不存在会导致加载问题,需要创建好后再运行命令。 您可以从 vrftp.horizon.ai/Open_Explorer/eval_dataset 获取数据集,然后创建该路径。

至此,您就已经成功通过Docker镜像进入了完整的工具链开发环境。 您可以键入 hb_mapper --help 命令验证下是否可以正常得到帮助信息,hb_mapper 是工具链的一个常用工具, 在后文的模型转换部分对其有详细介绍。

2.2.3. 手工安装环境

在执行手动安装前,我们希望您的操作环境满足如下软件环境要求:

  • 操作系统: CentOS7 或者 Ubuntu18.04

  • Python3.6

  • libpython3.6

  • python3-devel

  • python3-pip

  • gcc&c++: 5.4.0

  • graphviz

确认满足以上条件后,手工安装过程需要您依次完成:交叉编译器安装AI工具安装其他开发工具安装 三个步骤。

  1. 交叉编译器安装

交叉编译器使用相关文件已经包含在open_explorer发布包中, 您可以在发布包的 ddk/tools 中找到gcc_ubuntu_9.3.0_2020.03_x86_64_aarch64_linux_gnu.tar.xz, 并将其解压到开发机的 /opt 目录下。 另外您需要在环境中新增一个变量 LINARO_GCC_ROOT,给其复制为交叉编译器的完整路径,参考如下:

export LINARO_GCC_ROOT=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/
  1. AI和其他开发工具安装

AI工具安装涉及到系列内部工具安装,open_explorer发布包中已经将安装过程打包为一个安装脚本。 在发布包中进入到 ddk/package/host,执行以下命令启动安装:

bash install.sh

安装脚本会自动检查相应的环境,缺少相应依赖或配置会中断安装过程,并给出修正建议如下图。

_images/ai_tool_installation.png

根据建议补充依赖后,重新执行install脚本即可。

注意

如果修正建议指出是gcc/g++版本不符合要求,在安装完指定版本之后,您需要重新建立gcc和g++软链接为gcc-5.4.0和g++-5.4.0。

在顺利完成install脚本后,您可以键入 hb_mapper --help 命令验证下是否可以正常得到帮助信息, hb_mapper 是工具链的一个常用工具,在后文的模型转换部分对其有详细介绍。同时也可以从 ~/.horizon 目录下查看安装的依赖情况。

2.3. 开发板部署

开发板部署需要您先准备好一块烧写好系统镜像的开发板,再将相关补充文件拷贝到开发板中即可。

2.3.1. 开发板准备

此阶段需要验证下开发板的可用性,将可用系统镜像烧写到开发板中。 具体过程请参考open_explorer发布包中的XJ3 Soc用户指导材料 《地平线XJ3芯片固件升级手册》

2.3.2. 补充文件准备

工具链的部分补充工具未包含在系统镜像中,这些工具已经放置在Open Explorer发布包中, 进入到 ddk/package/board 执行install脚本即可。 执行命令如下:

bash install.sh ${board_ip}

备注

其中,${board_ip} 是您为开发板设置的IP地址,请确保在开发机上可以访问该IP。 成功安装后,重新启动开发板,在开发板上执行 hrt_model_exec 可以验证安装是否成功。