文档
注册

算子信息库定义

需要通过配置算子信息文件,将算子的相关信息注册到算子信息库中。算子信息库主要体现算子在昇腾AI处理器上物理实现的限制,包括算子的输入输出dtype、format以及输入shape信息。网络运行时,FE会根据算子信息库中的算子信息做基本校验,判断是否需要为算子插入合适的转换节点,并根据算子信息库中信息找到对应的算子实现文件进行编译,生成算子二进制文件进行执行。

进入“tbe/op_info_cfg/ai_core/soc_version”目录,配置算子信息库文件“add.ini”。

soc_version为当前昇腾AI处理器的版本,例如ascend310、ascend910等。

开发者需要基于MindStudio自动生成的add.ini文件进行修改,修改后的Add算子的算子信息定义如下所示。

[Add]
input0.name=x1
input0.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32
input0.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND
input0.shape=all
input0.paramType=required
input1.name=x2
input1.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32
input1.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND
input1.shape=all
input1.paramType=required
output0.name=y
output0.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32
output0.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND
output0.shape=all
output0.paramType=required
opFile.value=add
opInterface.value=add

参数说明请参见表1。下表仅列出常用的算子信息库配置项,其他配置项请参见算子开发指南的“算子开发过程 > 算子信息库定义 > TBE 算子信息库”章节。

表1 Add算子的算子信息定义说明

信息

Add算子配置

说明

[OpType]

[Add]

算子类型,以英文半角方括号,标识一个算子信息开始,根据算子分析,算子类型为Add。

input0.name

x1

Add算子的第一个输入tensor的名称,根据算子分析,第一个输入名称为x1,所以此处配置为x1,且需要跟算子原型定义中的名称保持一致。

input0.dtype

input0.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32

input0.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND

定义输入tensor支持的数据类型与数据排布格式。

根据算子分析,Add算子的输入数据类型支持float16、float32与int32三种;支持的数据排布格式有NCHW、NC1HWC0、NHWC、ND。

说明:

若算子输入支持多种规格,算子输入的dtype与format需要一一对应、按对应顺序进行配置,列出算子支持的所有dtype与format的组合,中间以“,”分隔。

input0.format

input0.shape

all

定义输入tensor支持的形状。

input0.paramType

required

定义输入tensor的类型。

  • dynamic:表示该输入是动态个数,可能是1个,也可能是多个。
  • optional:表示该输入为可选,可以有1个,也可以不存在。
  • required:表示该输入有且仅有1个。

Add算子的input0为固定输入1个,此处配置为required。

input1.name

x2

因为Add算子有两个输入,生成的配置模板中只有一个输入,所以此处需要添加input1的相关配置。

此配置项代表Add算子的第二个输入tensor的名称,根据算子分析,第二个输入名称为x2,所以此处配置为x2,且需要跟算子原型定义中的名称保持一致。

input1.dtype

input1.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32

input1.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND

定义输入tensor支持的数据类型与数据排布格式。

根据算子分析,Add算子的输入数据类型支持float16、float32与int32三种;支持的数据排布格式有NCHW,NC1HWC0,NHWC,ND。

说明:

若算子输入支持多种规格,算子输入的dtype与format需要一一对应、按对应顺序进行配置,列出算子支持的所有dtype与format的组合,中间以“,”分隔。

input1.format

input1.shape

all

定义输入tensor支持的形状。

input1.paramType

required

定义输入tensor的类型。

  • dynamic:表示该输入是动态个数,可能是1个,也可能是多个。
  • optional:表示该输入为可选,可以有1个,也可以不存在。
  • required:表示该输入有且仅有1个。

Add算子的input1为固定输入1个,此处配置为required。

output0.name

y

Add算子的输出tensor的名称,根据算子分析,算子的输出名称为y,所以此处配置为y,且需要跟算子原型定义中的名称保持一致。

output0.dtype

output0.dtype=float16,float16,float16,float16,float,float,float,float,int32,int32,int32,int32

output0.format=NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND

定义输出tensor支持的数据类型与数据排布格式。

根据算子分析,Add算子的输出数据类型支持float16、float32与int32三种;支持的数据排布格式有NCHW,NC1HWC0,NHWC,ND。

说明:

若算子输入支持多种规格,算子输入的dtype与format需要一一对应、按对应顺序进行配置,列出算子支持的所有dtype与format的组合,中间以“,”分隔。

output0.format

output0.shape

all

定义输出tensor支持的形状。

output0.paramType

required

定义输出tensor的类型。

  • dynamic:表示该输出是动态个数,可能是1个,也可能是多个。
  • optional:表示该输出为可选,可以有1个,也可以不存在。
  • required:表示该输出有且仅有1个。

Add算子的output0为固定输出1个,此处配置为required。

opFile.value

add

算子代码实现文件的名称。

因为算子实现代码的名称符合算子OpType到代码实现名称的转换规则,参见4,所以此字段可不配置。

opInterface.value

add

算子实现文件中定义函数的名称。

因为算子定义函数的名称符合算子OpType到算子定义函数名称的转换规则,参见4,所以此字段可不配置。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词