CANN/asc-devkit:自定义算子工程多Vendor并行编译、打包和部署样例

📅 2026/7/15 15:16:54
CANN/asc-devkit:自定义算子工程多Vendor并行编译、打包和部署样例
自定义算子工程多 Vendor 并行编译、打包和部署样例概述本样例展示如何在一个顶层 CMake 工程中使用ExternalProject_Add并行编译两个独立自定义算子工程add_customAddCustomleaky_relu_customLeakyReluCustom其中add_custom采用扁平目录组织host/kernel/tiling 源码位于同一层级leaky_relu_custom保持分层目录结构。每个子工程会分别完成自定义算子的编译、打包并生成独立的custom_opp_*.run安装包。本样例支持的产品及CANN软件版本产品CANN软件版本Ascend 950PR/Ascend 950DT CANN 9.1.0Atlas A3 训练系列产品/Atlas A3 推理系列产品 CANN 9.0.0Atlas A2 训练系列产品/Atlas A2 推理系列产品 CANN 9.0.0Atlas 200I/500 A2 推理产品 CANN 9.0.0Atlas 推理系列产品 CANN 9.0.0注意: 本样例中涉及多个算子示例请以各个算子示例实际支持的产品型号为准。目录结构介绍├── parallel_ops_package │ ├── CMakeLists.txt // 顶层编译工程文件并行构建多个算子包 │ ├── add_custom // Add算子工程目录 │ ├── leaky_relu_custom // LeakyRelu算子工程目录 │ │ ├── CMakeLists.txt // LeakyRelu算子编译工程文件 │ │ ├── framework // 框架适配插件目录 │ │ ├── op_host // Host侧算子实现目录 │ │ └── op_kernel // Kernel侧算子实现目录 │ └── README.md // 样例说明文档样例描述parallel_ops_package与custom_op使用相同的 Add/LeakyRelu 样例描述请参考custom_op/README.md 的“样例描述”章节样例规格描述parallel_ops_package与custom_op使用相同的 Add/LeakyRelu 规格描述请参考custom_op/README.md 的“样例规格描述”章节代码实现介绍parallel_ops_package的 Add/LeakyRelu 代码实现可参考custom_op文档说明。custom_op/README.md 的“代码实现介绍”章节编译运行在本样例根目录下执行如下步骤编译、打包并部署自定义样例包。配置环境变量请根据当前环境上CANN开发套件包的安装方式配置环境变量。source ${install_path}/cann/set_env.sh说明${install_path}为CANN包安装目录未指定安装目录时默认安装至/usr/local/Ascend下。编译、打包样例并部署两个算子包cmake -S . -B build cmake --build build -j # add_custom 包 ./build/add_custom/custom_opp_*.run # leaky_relu_custom 包 ./build/leaky_relu_custom/custom_opp_*.run执行结果如下说明执行成功。SUCCESS构建结果说明顶层工程会在build/下生成两个子目录build/add_custom/AddCustom 的中间产物与安装包build/leaky_relu_custom/LeakyReluCustom 的中间产物与安装包这两个目录互相独立便于多 Vendor 场景下并行开发与发布。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考