概述【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub本样例相比于AclNNInvocation样例工程简化了工程配置。目录结构介绍├── AclNNInvocationNaive │ ├── CMakeLists.txt // 编译规则文件 │ ├── main.cpp // 单算子调用应用的入口 │ └── run.sh // 编译运行算子的脚本代码实现介绍完成自定义算子的开发部署后可以通过单算子调用的方式来验证单算子的功能。main.cpp代码为单算子API执行方式。单算子API执行是基于C语言的API执行算子无需提供单算子描述文件进行离线模型的转换直接调用单算子API接口。自定义算子编译部署后会自动生成单算子API可以直接在应用程序中调用。算子API的形式一般定义为“两段式接口”形如// 获取算子使用的workspace空间大小 aclnnStatus aclnnAddCustomGetWorkspaceSize(const aclTensor *x, const aclTensor *y, const aclTensor *out, uint64_t workspaceSize, aclOpExecutor **executor); // 执行算子 aclnnStatus aclnnAddCustom(void *workspace, int64_t workspaceSize, aclOpExecutor **executor, aclrtStream stream);其中aclnnAddCustomGetWorkspaceSize为第一段接口主要用于计算本次API调用计算过程中需要多少的workspace内存。获取到本次API计算需要的workspace大小之后按照workspaceSize大小申请Device侧内存然后调用第二段接口aclnnAddCustom执行计算。具体参考单算子API调用章节。运行样例算子1. 编译算子工程运行此样例前请参考编译算子工程完成前期准备。2. aclnn调用样例运行进入到样例目录以命令行方式下载样例代码master分支为例。cd ${git_clone_path}/samples/operator/ascendc/tutorials/AddCustomSample/FrameworkLaunch/AclNNInvocationNaive样例编译文件修改将CMakeLists.txt文件内/usr/local/Ascend/ascend-toolkit/latest替换为CANN软件包安装后的实际路径。eg:/home/HwHiAiUser/Ascend/ascend-toolkit/latest环境变量配置需要设置NPU_HOST_LIB环境变量以x86为例export NPU_HOST_LIB/home/HwHiAiUser/Ascend/ascend-toolkit/latest/x86_64-linux/lib64样例执行样例执行过程中会自动生成测试数据然后编译与运行aclnn样例最后打印运行结果。mkdir -p build cd build cmake .. make ./execute_add_op用户亦可参考run.sh脚本进行编译与运行。bash run.sh更新说明时间更新事项2024/05/22新增本readme2024/12/31样例目录调整【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN/cann-learning-hub自定义算子测试指南
发布时间:2026/7/16 4:38:49
概述【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub本样例相比于AclNNInvocation样例工程简化了工程配置。目录结构介绍├── AclNNInvocationNaive │ ├── CMakeLists.txt // 编译规则文件 │ ├── main.cpp // 单算子调用应用的入口 │ └── run.sh // 编译运行算子的脚本代码实现介绍完成自定义算子的开发部署后可以通过单算子调用的方式来验证单算子的功能。main.cpp代码为单算子API执行方式。单算子API执行是基于C语言的API执行算子无需提供单算子描述文件进行离线模型的转换直接调用单算子API接口。自定义算子编译部署后会自动生成单算子API可以直接在应用程序中调用。算子API的形式一般定义为“两段式接口”形如// 获取算子使用的workspace空间大小 aclnnStatus aclnnAddCustomGetWorkspaceSize(const aclTensor *x, const aclTensor *y, const aclTensor *out, uint64_t workspaceSize, aclOpExecutor **executor); // 执行算子 aclnnStatus aclnnAddCustom(void *workspace, int64_t workspaceSize, aclOpExecutor **executor, aclrtStream stream);其中aclnnAddCustomGetWorkspaceSize为第一段接口主要用于计算本次API调用计算过程中需要多少的workspace内存。获取到本次API计算需要的workspace大小之后按照workspaceSize大小申请Device侧内存然后调用第二段接口aclnnAddCustom执行计算。具体参考单算子API调用章节。运行样例算子1. 编译算子工程运行此样例前请参考编译算子工程完成前期准备。2. aclnn调用样例运行进入到样例目录以命令行方式下载样例代码master分支为例。cd ${git_clone_path}/samples/operator/ascendc/tutorials/AddCustomSample/FrameworkLaunch/AclNNInvocationNaive样例编译文件修改将CMakeLists.txt文件内/usr/local/Ascend/ascend-toolkit/latest替换为CANN软件包安装后的实际路径。eg:/home/HwHiAiUser/Ascend/ascend-toolkit/latest环境变量配置需要设置NPU_HOST_LIB环境变量以x86为例export NPU_HOST_LIB/home/HwHiAiUser/Ascend/ascend-toolkit/latest/x86_64-linux/lib64样例执行样例执行过程中会自动生成测试数据然后编译与运行aclnn样例最后打印运行结果。mkdir -p build cd build cmake .. make ./execute_add_op用户亦可参考run.sh脚本进行编译与运行。bash run.sh更新说明时间更新事项2024/05/22新增本readme2024/12/31样例目录调整【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考