ReduceSum算子样例【免费下载链接】atvcATVCAscend C Templates for Vector Compute是为基于Ascend C开发的典型Vector算子封装的一系列模板头文件的集合可帮助用户快速开发典型Vector算子。项目地址: https://gitcode.com/cann/atvc概述本样例基于ReduceSumCustom算子工程介绍了基于ATVC的自定义算子工程调用。目录结构介绍├── reduce_sum // 使用框架调用的方式调用ReduceSum算子 │ ├── AclNNInvocation // 通过aclnn调用的方式调用ReduceSumCustom算子 │ ├── ReduceSumCustom // ReduceSumCustom算子工程 │ ├── ReduceSumCustom.json // ReduceSumCustom算子的原型定义json文件 │ └── install.sh // 脚本调用msOpGen生成自定义算子工程并编译算子描述ReduceSum是对输入tensor的指定轴进行规约累加的计算并输出结果的Reduce类算子。算子规格描述算子类型(OpType)ReduceSum算子输入nameshapedata typeformatx8 * 2048floatND算子输出y1 * 2048floatND核函数名reduce_sum_custom算子工程介绍其中算子工程目录ReduceSumCustom包含算子的实现文件如下所示├── ReduceSumCustom // ReduceSumCustom自定义算子工程 │ ├── op_host // host侧实现文件 │ ├── op_kernel // kernel侧实现文件 │ ├── build.sh // 算子构建入口 │ └── CMakeLists.txt // 算子的cmake文件CANN软件包中提供了工程创建工具msOpGenReduceSumCustom算子工程可通过ReduceSumCustom.json自动创建自定义算子工程具体请参考Ascend C算子开发工程化算子开发创建算子工程 章节。创建完自定义算子工程后开发者重点需要完成算子host和kernel文件的功能开发。为简化样例运行流程本样例已在ReduceSumCustom目录中准备好了必要的算子实现install.sh脚本会创建一个CustomOp目录并将算子实现文件复制到对应目录下再编译算子。备注CustomOp目录为生成目录每次执行install.sh脚本都会删除该目录并重新生成切勿在该目录下编码算子会存在丢失风险。编译运行样例算子针对自定义算子工程编译运行包含如下步骤调用msOpGen工具生成自定义算子工程基于ATVC框架完成算子host和kernel实现编译自定义算子工程生成自定义算子包安装自定义算子包到自定义算子库中调用执行自定义算子。详细操作如下所示。1. 获取源码包及环境配置编译运行此样例前请参考准备获取样例代码获取源码包及环境变量的准备。2. 生成自定义算子工程复制host和kernel实现并编译算子导入ATVC环境变量# 如果不导入默认使用./atvc/include路径 export ATVC_PATH${atvc}/include切换到msOpGen脚本install.sh所在目录# 若开发者以git命令行方式clone了master分支代码并切换目录 cd ./ops_templates/atvc/examples/ops_aclnn/reduce_sum调用脚本生成自定义算子工程复制host和kernel实现并编译算子运行install.sh脚本bash install.sh -v [SOC_VERSION]参数说明SOC_VERSION昇腾AI处理器型号如果无法确定具体的[SOC_VERSION]则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询在查询到的“Name”前增加Ascend信息例如“Name”对应取值为xxxyy实际配置的[SOC_VERSION]值为Ascendxxxyy。支持以下处理器型号Ascend 910CAscend 910B脚本运行成功后会在当前目录下创建CustomOp目录编译完成后会在CustomOp/build_out中生成自定义算子安装包custom_opp_target os_target architecture.run例如“custom_opp_ubuntu_x86_64.run”。3. 部署自定义算子包部署自定义算子包前请确保存在自定义算子包默认部署路径环境变量ASCEND_OPP_PATH。echo $ASCEND_OPP_PATH # 输出示例 /usr/local/Ascend/latest/opp # 若没有则需导出CANN环境变量 source [ASCEND_INSTALL_PATH]/bin/setenv.bash # 例如 source /usr/local/Ascend/latest/bin/setenv.bash参数说明ASCEND_INSTALL_PATHCANN软件包安装路径一般和上一步中指定的路径保持一致在自定义算子安装包所在路径下执行如下命令安装自定义算子包cd CustomOp/build_out ./custom_opp_target os_target architecture.run命令执行成功后自定义算子包中的相关文件将部署至opp算子库环境变量ASCEND_OPP_PATH指向的的vendors/customize目录中。4. 调用执行算子工程aclnn调用ReduceSumCustom算子工程【免费下载链接】atvcATVCAscend C Templates for Vector Compute是为基于Ascend C开发的典型Vector算子封装的一系列模板头文件的集合可帮助用户快速开发典型Vector算子。项目地址: https://gitcode.com/cann/atvc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考