文件最后提交记录最后更新时间
version Co-authored-by: qixingkai<qixingkai@huawei.com> # message auto-generated for no-merge-commit merge: !2 merge master into master version Created-by: qixingkai Commit-by: qixingkai Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/atvc!26 个月前
Init7 个月前
Init7 个月前
修复aclnn查找路径 Co-authored-by: lishangfan<lishangfan@h-partners.com> # message auto-generated for no-merge-commit merge: !20 merge master into master 修复aclnn查找路径 Created-by: ruoshuisixue Commit-by: lishangfan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/atvc!205 个月前
README.md

AclNNInvocationNaive工程样例

概述

本样例相比于AclNNInvocation样例工程,简化了工程配置。

目录结构介绍

├── AclNNInvocationNaive
│   ├── CMakeLists.txt      // 编译规则文件
│   ├── main.cpp            // 单算子调用应用的入口
│   └── run.sh              // 编译运行算子的脚本

代码实现介绍

完成自定义算子的开发部署后,可以通过单算子调用的方式来验证单算子的功能。main.cpp代码为单算子API执行方式。单算子API执行是基于C语言的API执行算子,无需提供单算子描述文件进行离线模型的转换,直接调用单算子API接口。

自定义算子编译部署后,会自动生成单算子API,可以直接在应用程序中调用。算子API的形式一般定义为“两段式接口”,形如:

// 获取算子使用的workspace空间大小
aclnnStatus aclnnReduceSumCustomGetWorkspaceSize(const aclTensor *x, const aclIntArrat *dim, const aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor);
// 执行算子
aclnnStatus aclnnReduceSumCustom(void *workspace, int64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream);

其中aclnnReduceSumCustomGetWorkspaceSize为第一段接口,主要用于计算本次API调用计算过程中需要多少的workspace内存。获取到本次API计算需要的workspace大小之后,开发者按照workspaceSize大小申请Device侧内存,然后调用第二段接口aclnnReduceSumCustom执行计算。具体参考单算子API调用章节。

运行样例算子

1. 编译算子工程

运行此样例前,请参考编译算子工程完成前期准备。

2. aclnn调用样例运行

  • 进入到样例目录
    以命令行方式下载样例代码,master分支为例。

    cd atvc/examples/ops_aclnn/reduce_sum/AclNNInvocationNaive
    
  • 样例编译文件修改

    将CMakeLists.txt文件内"/usr/local/Ascend/ascend-toolkit/latest"替换为CANN软件包安装后的实际路径。
    eg:/home/HwHiAiUser/Ascend/ascend-toolkit/latest

  • 样例执行

    用户参考run.sh脚本进行编译与运行。

    bash run.sh