获取算子开发相关交付件并按照目录结构要求存放后,可进行交付件独立编译,生成自定义算子安装包*.run,详细的编译操作包括:
├── framework //算子插件实现文件目录,框架为“PyTorch”的算子无需关注 │ ├── tf_plugin //原始框架类型为TensorFlow时生成的算子适配插件代码所在目录 │ └── tensorflow_conv2_d_plugin.cc //算子适配插件实现文件 │ └── onnx_plugin //原始框架类型为ONNX时生成的算子适配插件代码所在目录 │ └── conv2_d_plugin.cc //算子适配插件实现文件 ├── op_proto //算子原型定义文件所在目录(必要交付件) │ ├── conv2_d.h │ ├── conv2_d.cc ├── tbe //必要交付件 │ ├── impl //算子代码实现文件目录 │ └── conv2_d.py //算子代码实现文件 │ ├── op_info_cfg //算子信息库文件目录 │ └── ai_core │ ├── {Soc Version} //昇腾AI处理器类型 │ ├── conv2_d.ini //算子信息库定义文件、 ├── op_tiling //算子tiling实现文件目录,不涉及tiling实现的算子无需关注
├── framework //算子插件实现文件目录,框架为“PYTORCH”的算子无需关注
│ ├── tf_plugin //原始框架类型为TensorFlow时生成的算子适配插件代码所在目录
│ └── tensorflow_conv2_d_plugin.cc //算子适配插件实现文件
│ └── onnx_plugin //原始框架类型为ONNX时生成的算子适配插件代码所在目录
│ └── conv2_d_plugin.cc //算子适配插件实现文件
├── op_proto //算子原型定义文件所在目录(必要交付件)
│ ├── conv2_d.h
│ ├── conv2_d.cc
├── cpukernel //必要交付件
│ ├── impl //算子代码实现文件目录
│ │ ├── conv2_d_kernels.cc
│ │ └── conv2_d_kernels.h
│ ├── op_info_cfg
│ │ └── aicpu_kernel
│ │ └── conv2_d.ini //算子信息库定义文件
├── op_tiling //算子tiling实现文件目录,不涉及tiling实现的算子无需关注
进入msopgen工具所在目录(CANN软件安装后文件存储路径下的“python/site-packages/bin”)执行如下命令,参数说明请参见表1。
./msopgen compile -i {operator deliverables directory} -c {CANN installation paths}
├── build_out //新增编译输出目录 ├── build.sh //新增编译配置入口脚本 ├── cmake //新增编译目录 │ ├── config.cmake │ ├── util ├── CMakeLists.txt //新增CMakeLists.txt ├── framework //算子插件实现文件目录,框架为“PYTORCH”的算子无需关注 │ ├── CMakeLists.txt //新增文件 │ ├── tf_plugin //原始框架类型为TensorFlow时生成的算子适配插件代码所在目录 │ └── tensorflow_conv2_d_plugin.cc //算子适配插件实现文件 │ └── CMakeLists.txt //新增文件 │ └── onnx_plugin //原始框架类型为ONNX时生成的算子适配插件代码所在目录 │ ├── CMakeLists.txt //新增文件 │ └── conv2_d_plugin.cc //算子适配插件实现文件 ├── op_proto //算子原型定义文件及CMakeLists文件所在目录 │ ├── conv2_d.h │ ├── conv2_d.cc │ ├── CMakeLists.txt //新增文件 ├── tbe │ ├── CMakeLists.txt //新增文件 │ ├── impl //算子代码实现文件目录 │ └── conv2_d.py //算子代码实现文件 │ ├── op_info_cfg //算子信息库文件目录 │ └── ai_core │ ├── {Soc Version} //昇腾AI处理器类型 │ ├── conv2_d.ini //算子信息库定义文件、 ├── op_tiling //算子tiling实现文件目录,不涉及tiling实现的算子无需关注 │ ├── CMakeLists.txt //新增文件 ├── scripts //新增自定义算子打包相关脚本所在目录
├── build_out //新增编译输出目录
├── build.sh //新增编译配置入口脚本
├── cmake //新增编译目录
│ ├── config.cmake
│ ├── util
├── CMakeLists.txt //新增文件
├── framework //算子插件实现文件目录,框架为“PYTORCH”的算子无需关注
│ ├── CMakeLists.txt //新增文件
│ ├── tf_plugin //原始框架类型为TensorFlow时生成的算子适配插件代码所在目录
│ └── tensorflow_conv2_d_plugin.cc //算子适配插件实现文件
│ └── CMakeLists.txt //新增文件
│ └── onnx_plugin //原始框架类型为ONNX时生成的算子适配插件代码所在目录
│ ├── CMakeLists.txt //新增文件
│ └── conv2_d_plugin.cc //算子适配插件实现文件
├── op_proto //算子原型定义文件及CMakeList文件所在目录
│ ├── conv2_d.h
│ ├── conv2_d.cc
│ ├── CMakeLists.txt //新增文件
├── cpukernel
│ ├── CMakeLists.txt //新增文件
│ ├── impl //算子代码实现文件目录
│ │ ├── conv2_d_kernels.cc
│ │ └── conv2_d_kernels.h
│ ├── op_info_cfg
│ │ └── aicpu_kernel
│ │ └── conv2_d.ini //算子信息库定义文件
│ └── toolchain.cmake //新增编译文件
├── op_tiling //算子tiling实现文件目录,不涉及tiling实现的算子无需关注
│ ├── CMakeLists.txt //新增文件
├── scripts //新增自定义算子打包相关脚本所在目录