算子分析
使用AI CPU方式开发算子前,我们需要确定算子功能、输入、输出、算子类型以及算子实现函数名称等。
- 明确算子的功能以及数学表达式。
以Add算子为例,Add算子的数学表达式为:
z=x+y
计算过程是:将两个输入参数相加,得到最终结果z并将其返回。
- 明确输入和输出。
- 例如Add算子有两个输入:x与y,输出为z。
- 本样例中算子的输入支持的数据类型为float16、float32、 int32,算子输出的数据类型与输入数据类型相同。
- 算子输入支持所有shape,输出shape与输入shape相同。
- 算子输入支持的format为:NCHW,NHWC,ND。
- 明确算子实现文件名称以及算子的类型(OpType)。
因此本例中,算子类型定义为Add,算子的实现文件名称为add,因此各个交付件的名称建议命名如下:
- 算子的代码实现(即kernel实现)文件命名为add_kernel.h与add_kernel.cc。
- 插件实现文件命名为add_kernel_plugin.cc。
- 原型定义文件命名为:add.h与add.cc。
- 信息定义文件命名为add.ini。
通过以上分析,得到Add算子的设计规格如下:
表1 Add算子设计规格 算子类型(OpType)
Add
算子输入
name:x
shape:all
data type:
float16、float32、 int32
name:y
shape:all
data type:
float16、float32、 int32
算子输出
name:z
shape:all
data type:
float16、float32、 int32
算子实现文件名称
add
父主题: 算子开发准备