工具链开发环境部署
软件平台提供包含完整开发环境的 Docker 镜像,其内部预置HMQuantool量化工具、TCIM等软件组件。用户可以在 Docker 镜像中快速构建、运行和测试软件平台。
Docker镜像安装与部署
使用依赖
Docker 容器运行依赖如下:
Docker Engine: 20.10.17 及以上
宿主机系统:
Docker容器可运行于标准Linux环境,推荐使用以下已验证环境:
Ubuntu 24.04(x86_64、AArch64)
其他Linux环境在满足 Docker 运行条件的情况下通常也可运行,但未在本产品中进行完整验证。
网络要求:
支持公网访问,用于下载依赖及模型资源
镜像类型说明
根据功能和平台架构不同,镜像分为以下三类:
x86_64全功能镜像:
支持模型量化、模型编译与模型推理。
Dadao-convert-docker-xh2-vx.y.z-ubuntu24.04-x86.64.tarx86_64推理部署镜像(deploy镜像):
仅支持模型推理运行,不包含模型量化与模型编译。
镜像名称中包含
deploy标识。Dadao-deploy-docker-xh2-deploy-vx.y.z-ubuntu24.04-x86.64.tarAArch64推理部署镜像:
仅支持ARM64架构下模型推理运行,不包含模型量化与模型编译。
Dadao-deploy-docker-xh2-deploy-vx.y.z-ubuntu24.04-aarch64.tar
单芯片(单逻辑设备)部署流程
对于后摩设备仅搭载单颗M50芯片的单逻辑设备环境,Linux主机端安装和部署流程如下:
图 6 Linux主机端部署说明
执行下面步骤,在Linux主机端安装和部署软件平台:
安装最新版本驱动。详情参看 《软件平台驱动安装指南》。
烧写和升级后摩设备固件镜像。详情参看 《HmUpdateTool工具使用指南》。
检测 使用依赖。
按需下载 Docker 镜像;全功能镜像支持量化、编译和推理,推理部署镜像仅支持推理。
登录后摩开发者社区。
在 请先选择板级类别 下拉列表中选择使用的后摩板级产品。
在版本列表中选择下载的版本号,再在 AI模型类别筛选器 、平台架构筛选器 、操作系统筛选器 下拉菜单中分别选择AI模型类型、平台架构和操作系统,找到资源名为转换镜像或部署镜像的下载资源,选中该资源左边复选框。
点击 直接下载、wget链接、批量直接下载 或 wget批量下载 按钮。
更多Docker镜像详情,参看 Docker镜像发布列表。
启动Docker容器。
在Docker镜像存放路径下,运行下面命令导入镜像:
docker load -i <docker_file>
其中 docker_file 为下载的Docker镜像文件名。如果导入成功,则会显示导入后Docker镜像名,示例如下:
Loaded image: harbor.houmo.ai/toolchain/release:Dadao-convert-xh2-v1.4.0-ubuntu24.04-x86.64
运行下面命令启动Docker容器:
docker run -it \ --pid=host \ --privileged \ -w /hmdd \ -v "$PWD:/hmdd" \ --shm-size 64g \ --name <container_name> \ <docker_image_name> \ /bin/bash
其中 container_name 需替换为自定义容器名称;docker_image_name 需替换为Docker镜像名,如上一步示例镜像名为
harbor.houmo.ai/toolchain/release:Dadao-convert-xh2-v1.4.0-ubuntu24.04-x86.64。
(可选)在Docker容器内,设置环境变量。
完成上述配置后,可在Docker容器中运行 modelzoo,也可开发新的应用程序。
多M50芯片(多逻辑设备)映射与部署
本节适用于以下硬件环境下的后摩软件平台安装与部署:
单个后摩设备多芯片场景:单个后摩设备上包含多颗M50芯片。在Linux系统层,每颗M50芯片会被识别为一个独立的后摩逻辑设备(即拥有一组专属的
/dev/xh2a_xxx设备节点)。跨后摩设备互联场景:多个后摩设备通过芯片间互联技术(Chip-to-Chip, CTC)物理连接,需要进行跨芯片或跨设备的联合部署。
术语与核心概念说明
在进行多芯片部署前,需了解以下核心术语,以确保正确配置硬件拓扑:
Group_Id: 标识一个独立的、物理隔离的CTC互连域。只有属于同一个
Group_Id的 M50 芯片之间,才能通过物理CTC通路建立连接。Chip_Id: 标识M50芯片在所属CTC互连组(
group_id)内部的唯一硬件索引。该ID属于物理层面的硬编码标识。
部署步骤
执行下面步骤,在Linux主机端安装和部署软件平台:
安装最新版本驱动。详情参看 《软件平台驱动安装指南》。
烧写和升级后摩设备固件镜像。详情参看 《HmUpdateTool工具使用指南》。
检测 使用依赖。
按需下载 Docker 镜像;全功能镜像支持量化、编译和推理,推理部署镜像仅支持推理。
登录后摩开发者社区。
在 请先选择板级类别 下拉列表中选择使用的后摩板级产品。
在版本列表中选择下载的版本号,再在 AI模型类别筛选器 、平台架构筛选器 、操作系统筛选器 下拉菜单中分别选择AI模型类型、平台架构和操作系统,找到资源名为转换镜像或部署镜像的下载资源,选中该资源左边复选框。
点击 直接下载、wget链接、批量直接下载 或 wget批量下载 按钮。
更多Docker镜像详情,参看 Docker镜像发布列表。
初始化多设备拓扑连接。主机端调用SMI工具,初始化多颗M50芯片(多逻辑设备)间的物理或逻辑连接:
hm_smi -a
执行后,终端会输出当前系统中所有可用M50芯片的拓扑信息。请记录返回信息中各设备对应的
Group_Id和Chip_Id。启动Docker容器。
在Docker镜像存放路径下,运行下面命令导入镜像:
docker load -i <docker_file>
其中 docker_file 为下载的Docker镜像文件名。如果导入成功,则会显示导入后Docker镜像名,示例如下:
Loaded image: harbor.houmo.ai/toolchain/release:Dadao-convert-xh2-v1.4.0-ubuntu24.04-x86.64
运行下面命令启动Docker容器。请选择同一个
Group_Id下的连续芯片,将其Chip_Id分别替换至下文中的设备路径X中:注意
绝对不支持跨组(
Group_Id)映射。不能在一个容器内同时映射不同Group_Id的芯片。必须保证
Chip_Id连续。在同一个Group_Id内,必须按照连续的Chip_Id进行映射,不支持跳跃式映射。例如可以同时挂载0和1,但不能只挂载0和2。
1docker run -it \ 2 --network=host \ 3 --pid=host \ 4 --privileged \ 5 -w /hmdd \ 6 -v $PWD:/hmdd \ 7 --shm-size 64g \ 8 --name <container_name> \ 9 \ 10 --device /dev/xh2a_ctl0:/dev/xh2a_ctl0 \ 11 --device /dev/xh2a_system_deviceX:/dev/xh2a_system_deviceY \ 12 --device /dev/xh2a_ipuX:/dev/xh2a_ipuY \ 13 --device /dev/xh2a_memory_allocator_deviceX_ddr:/dev/xh2a_memory_allocator_deviceY_ddr \ 14 --device /dev/xh2a_memory_allocator_deviceX_spm0:/dev/xh2a_memory_allocator_deviceY_spm0 \ 15 --device /dev/xh2a_memory_allocator_deviceX_spm1:/dev/xh2a_memory_allocator_deviceY_spm1 \ 16 --device /dev/xh2a_memory_transfer_deviceX:/dev/xh2a_memory_transfer_deviceY \ 17 --device /dev/xh2a_fast_memory_deviceX:/dev/xh2a_fast_memory_deviceY \ 18 --device /dev/xh2a_i2c_deviceX:/dev/xh2a_i2c_deviceY \ 19 --device /dev/xh2a_qspi_deviceX:/dev/xh2a_qspi_deviceY \ 20 --device /dev/xh2a_rpmsg_deviceX_0:/dev/xh2a_rpmsg_deviceY_0 \ 21 \ 22 <docker_image_name> \ 23 /bin/bash
参数说明:
<container_name>:用户自定义的容器名称。
<docker_image_name>:上一步导入的 Docker 镜像完整名称,如上一步示例镜像名为
harbor.houmo.ai/toolchain/release:Dadao-convert-xh2-v1.4.0-ubuntu24.04-x86.64。deviceX 挂载规则:必须根据SMI指令返回结果,选取相同
Group_Id里的连续Chip_Id数字,依次替换或添加命令行中的设备节点。--device挂载规则:格式为
--device /dev/xh2a_xxxX:/dev/xh2a_xxxY。如果需要同时挂载多颗芯片,请复制上方指令中标亮10 ~ 20行代码配置,并为每颗M50芯片指定对应的X和Y数字。X:宿主机端的物理chip_id,必须严格根据hm_smi -a查询到的实际芯片编号填写。Y:容器内部看到的逻辑芯片号。默认建议与X保持一致,但如果有特殊部署需求,也可以自定义,例如将宿主机上同一个CTC互连组内的物理芯片1、芯片2,分别映射为容器内的逻辑0、逻辑1。进入Docker容器后,运行
hm_smi工具查询到的Group_Id和Chip_Id依然是由底层硬件透传的真实物理值,不会发生任何改变。
(可选)在Docker容器内,设置环境变量。
完成上述配置后,可在Docker容器中运行 modelzoo,也可开发新的应用程序。
环境变量
环境变量列表
Linux环境下,可设置的环境变量如下表所示。默认情况下,无需用户设置。
注意
setenv。环境变量名称 |
描述 |
默认值 |
|---|---|---|
HOUMO_PATH |
工具链安装路径。 |
|
TCIM_RUNTIME_PATH |
TCIM运行时库安装路径。 |
/opt/venv/dadao/lib/python3.12/site-packages/tcim_lite |
HOUMO_SDK_PATH |
系统软件安装路径。 |
|
LD_LIBRARY_PATH |
系统软件和TCIM动态链接库所在路径。 |
/usr/local/houmo/lib:/usr/local/houmo-sdk/hal/lib: |
PATH |
软件平台可执行文件和系统软件工具,如SMI工具所在路径。 |
/usr/local/houmo-sdk/tools/hm_smi:/usr/local/houmo-sdk/tools/gui:/usr/local/houmo-sdk/tools/cli:/usr/local/houmo/bin:/usr/local/houmo-sdk/tools:/opt/venv/dadao/bin |
环境变量名称 |
描述 |
默认值 |
|---|---|---|
HOUMO_PATH |
工具链安装路径。 |
|
TCIM_RUNTIME_PATH |
TCIM运行时库安装路径。 |
/opt/venv/dadao/lib/python3.12/site-packages/tcim_lite |
HOUMO_SDK_PATH |
系统软件安装路径。 |
|
LD_LIBRARY_PATH |
系统软件和TCIM动态链接库所在路径。 |
/usr/local/houmo-sdk/hal/lib |
PATH |
软件平台可执行文件和系统软件工具,如SMI工具所在路径。 |
/usr/local/houmo-sdk/tools:/usr/local/houmo/bin:/usr/local/houmo-sdk/tools/hm_smi:/usr/local/houmo-sdk/tools/gui:/usr/local/houmo-sdk/tools/cli: |
环境变量名称 |
描述 |
默认值 |
|---|---|---|
HOUMO_PATH |
工具链安装路径。 |
|
TCIM_RUNTIME_PATH |
TCIM运行时库安装路径。 |
/opt/venv/dadao/lib/python3.12/site-packages/tcim_lite |
HOUMO_SDK_PATH |
系统软件安装路径。 |
|
LD_LIBRARY_PATH |
系统软件和TCIM动态链接库所在路径。 |
/usr/local/houmo-sdk/hal/lib |
PATH |
软件平台可执行文件和系统软件工具,如SMI工具所在路径。 |
/usr/local/houmo-sdk/tools/hm_smi:/usr/local/houmo-sdk/tools/gui:/usr/local/houmo-sdk/tools/cli:/usr/local/houmo/bin:/usr/local/houmo-sdk/tools: |