简介
概述
算子原型定义了算子的输入、输出和属性信息。原型信息会被注册到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