---
title: 基于算子样例
description: "命令行场景下，开发者可以直接基于Ascend社区中提供的自定义算子样例工程进行修改，追加自定义算子。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/tbeaicpudevg/atlasopdev_10_0025.html
sourcePath: /source/zh/canncommercial/900/others/tbeaicpudevg/atlasopdev_10_0025.html
indexId: 734b097f5264c5aacca89308eb360a75e834b53544446475183c81d3d5b6bb8a73
---
# 基于算子样例

命令行场景下，开发者可以直接基于Ascend社区中提供的自定义算子样例工程进行修改，追加自定义算子。

#### 样例获取

单击Gitee(https://gitee.com/ascend/samples/)或Github(https://github.com/Ascend/samples)，进入Ascend samples样例仓，参见README中的“版本说明”下载配套版本的sample包，从“cplusplus/level1_single_api/4_op_dev/1_custom_op”目录中获取样例。

如无权限获取代码，请联系技术支持申请加入“Ascend”组织。


#### 目录结构介绍

算子工程目录结构如下所示，请基于如下规则在对应目录下进行算子交付件的开发：

```
├── custom.proto    // 原始框架为Caffe的自定义算子的proto定义文件
├── build.sh       //  工程编译入口脚本
├──
cpukernel
// AI CPU算子实现文件及信息库文件所在目录
│   ├──
impl
//存放算子实现文件xx.h与xx.cc
│   ├──
op_info_cfg
│       ├── aicpu_kernel
│           ├── xx.ini  //算子信息库定义文件xx.ini
├──
framework
//算子插件实现文件目录，框架为“PYTORCH”的算子无需关注
│   ├── CMakeLists.txt
│   ├── caffe_plugin    //Caffe算子适配插件实现代码及CMakeLists文件所在目录
│       ├── CMakeLists.txt
│       ├── xx_plugin.cc
│   ├── tf_plugin    //TensorFlow算子适配插件实现代码及CMakeLists文件所在目录
│       ├── CMakeLists.txt
│       ├── xx_plugin.cc
│   ├── onnx_plugin    //ONNX算子适配插件实现代码及CMakeLists文件所在目录
│       ├── CMakeLists.txt
│       ├── xx_plugin.cc
│   ├── tf_scope_fusion_pass    //Parser Scope融合规则实现代码及CMakeLists文件所在目录
│       └──
xx_pass.h
│       └──
xx_pass.cc
│       └── CMakeLists.txt
├──
op_proto
//算子原型定义文件及CMakeLists文件所在目录
│   ├── xx.h
│   ├── xx.cc
│   ├── CMakeLists.txt   //算子IR定义文件的CMakeLists.txt，会被算子工程的CMakeLists.txt调用
├──
tbe
│   ├── CMakeLists.txt
│   ├──
impl
//算子实现文件目录
│   │      ├──
xx.py
│   │      ├── __init__.py      //Python中的package标识文件
│   ├──
op_info_cfg
//算子信息库文件目录
│       └── ai_core
│           ├──
{Soc Version}
//AI处理器类型
│               ├──
xx.ini
│   ├── testcase
│       ├── tf1.15_test  //基于TensorFlow 1.15的算子测试文件目录
│           ├──
op_name
//单算子网络测试代码
│              ├── tf_
xx
.py
│       ├── tf2.6_test  //基于TensorFlow 2.6的算子测试文件目录
│           ├──
op_name
//单算子网络测试代码
│              ├── tf_
xx
.py
├── cmake
│   ├── config.cmake
│   ├── util                // 编译相关公共文件存放目录
│       ├── makeself       //编译相关公共文件存放目录
├── scripts     //自定义算子工程打包相关脚本
├── tools
```

PyTorch框架的适配代码不在此算子工程中，需要基于PyTorch框架源码进行适配代码的开发，详情请参见适配插件开发（PyTorch框架）。

- 编译方法请参见  算子工程编译
。
- 样例工程中同时包含了原始框架为TensorFlow与Caffe的TBE算子与AI CPU算子样例，算子工程编译部署时，会将所有样例工程中的算子部署到算子库中。若样例算子与用户算子冲突，请自行删除对应目录下的样例算子。
- 关于TensorFlow的Parser Scope融合规则开发的详细介绍，请参见《TensorFlow Parser Scope融合规则开发(https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/900/Convergence/tfscopedevg/atlastfscopedev_11_0002.html)》。
