简介
概述
算子原型定义了算子的输入、输出和属性信息。原型信息会被注册到GE的算子原型库中,网络模型生成时,GE会调用算子原型提供的校验接口(Verify接口)对图中的节点信息进行合法性校验,调用算子原型提供的InferShape接口,进行算子输出tensor描述的推导。
算子原型定义包括两个部分:
- 算子原型.h:算子的输入输出以及属性信息。
- 算子原型.cc:定义校验函数以及输出tensor描述推导函数,并向GE进行函数的注册。
昇腾AI软件栈开放了算子原型实现的相关接口,开发者可使用这些接口进行自定义算子的算子原型定义的开发。
接口总览
接口列表如下所示,接口定义可在CANN软件安装后文件存储路径下的“include/graph/”路径中对应的头文件中查看头文件。
| 接口类型 | 简介 | 头文件 | 
|---|---|---|
| 原型定义接口 | 原型定义接口,定义算子的输入、输出以及属性信息。 | operator_reg.h | 
| InferShape接口 | 定义及注册算子的InferShape函数,进行张量形状的推导。 | operator_reg.h | 
| Verify接口 | 定义及注册算子的Verify函数,进行基本参数的校验。 | operator_reg.h | 
| InferFormat接口 | 定义及注册算子的InferFormat函数,进行张量数据排布格式的推导。 | operator_reg.h | 
| InferenceContext | InferenceContext类。 功能为:获取推理上下文对象,并设置相应对象的形状和数据类型,主要用于资源类算子。 | inference_context.h | 
| ShapeAndType | ShapeAndType类。 可设置、获取相应对象的形状和数据类型。 | inference_context.h | 
| 内部关联接口 | 算子运行注册以及算子InferShape、Verify以及InferFormat所需的内部辅助数据结构及接口,开发者不直接调用此类接口。 | operator_factory.h | 
父主题: 原型定义 API