接口列表
本文档主要描述给应用用户或者上层框架提供了安全易用的构图接口集合,开发者可以调用这些接口构建网络模型,设置模型所包含的图、图内的算子以及算子的属性信息(包括Input、Output及其他属性信息)。
如无特殊说明,本手册中的所有头文件默认都在“${INSTALL_DIR}/include”路径。
其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。
aclgrph API
|
接口列表 |
功能描述 |
头文件/库文件 |
|---|---|---|
|
将Caffe模型解析为图。 |
|
|
|
将ONNX模型解析为Graph。 |
||
|
将加载至内存的ONNX模型解析为Graph。 |
||
|
将TensorFlow模型解析为Graph。 |
||
|
模型构建的初始化函数,用于申请资源。 |
|
|
|
系统完成模型构建后,通过该接口释放资源。 |
||
|
将输入的Graph编译为适配昇腾AI处理器的离线模型,并保存到内存缓冲区。 |
||
|
与aclgrphBuildModel接口的区别是,该接口适用于权重更新场景。通过aclgrphBundleBuildModel接口生成离线模型缓存后,需要使用aclgrphBundleSaveModel接口落盘。 |
||
|
将离线模型序列化并保存到指定文件中。 |
||
|
通过传入Const节点名数组将原图转换成一组权重可更新的图。 |
||
|
将输入的Graph导出到文本中。 |
||
|
获取模型构建相关接口的版本号。 |
||
|
根据单算子信息或单算子JSON文件构建Graph。 |
||
|
将离线模型序列化并保存到指定文件中。 |
||
|
用于支持设置node属性方式的改图。 |
||
|
||
|
创建Profiling配置信息。 |
|
|
|
销毁Profiling配置信息。 |
||
|
结束Profiling。 |
||
|
初始化Profiling,设置Profiling参数(目前供用户设置保存性能数据文件的路径)。 |
||
|
下发Profiling请求,使能对应数据的采集。 |
||
|
停止Profiling数据采集。 |
Session API
|
接口列表 |
功能描述 |
头文件/库文件 |
|---|---|---|
|
Session构造函数和析构函数。 |
|
|
|
向Session中添加Graph,Session内会生成唯一的Graph ID。 |
||
|
向Session中添加Graph,Session内会生成唯一的Graph ID。 |
||
|
同步编译指定ID对应的Graph图,生成可用于执行的模型。 |
||
|
同步编译指定ID对应的Graph图。与BuildGraph相比,该接口仅包含图编译功能,不生成可用于执行的模型,BuildGraph包含了图编译过程,并在编译完成后进行模型所需内存资源的初始化,生成可用于执行的模型。 |
||
|
异步运行指定ID对应的Graph图,输出执行结果。 |
||
|
初始化GE,完成运行准备。 |
||
|
查询图编译结果的概要信息。包括Feature内存大小、Const内存大小、Stream、Event数目及内存是否可刷新等信息。 |
||
|
GE退出,释放GE相关资源。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的错误描述信息。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的错误描述信息。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的告警信息。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的告警信息。 |
||
|
获取Session的ID。 |
||
|
只有异步执行Graph场景使用,使用指定的Session,将指定Graph ID的图绑定到对应Stream上。 |
||
|
使用指定的Session实例,异步运行指定ID对应的Graph图,输出执行结果。 |
||
|
变量查询接口,获取Session内所有variable算子或指定variable算子的Tensor内容。 |
||
|
Graph是否需要重新编译。 |
||
|
异步执行Graph场景使用,将指定Graph ID的图绑定到对应Stream上。 |
||
|
用于内存出现UCE(Uncorrectable Error,不可纠正错误)错误时判断此段内存是否可以快速恢复。 |
||
|
注册回调函数。 |
||
|
用户将自己的Allocator注册给GE,适用于使用用户的内存池场景。 |
||
|
在当前Session中删除指定ID对应的Graph。 |
||
|
同步运行指定ID对应的Graph图,输出运行结果。 |
||
|
异步运行指定ID对应的Graph图,输出运行结果。 |
||
|
对输入refdata节点切分后,同步运行指定ID对应的Graph图,输出运行结果。 |
||
|
异步运行指定ID对应的Graph图,输出运行结果。该接口包括了编译,加载和运行Graph的操作。 |
||
|
该接口已废弃,请勿使用。 保存Session内图接口,将图保存为pb文件,支持Session内的权重共享功能(即Session内两张图若有两个权重值是一致的,则只会保存一份权重)。 |
||
|
设置Graph的Const内存基址。 |
||
|
用于指定图的Fixed Feature内存基地址。 |
||
|
用于指定图的不同内存类型的Fixed Feature内存基地址。 |
||
|
该接口已废弃,请勿使用。 切分图接口,对Session内的图按照AddGraph的顺序进行切分,切分后的图保存在内存中。 |
||
|
该接口已废弃,请勿使用。 切分图接口,对Session内的图按照AddGraph的顺序进行切分,切分后的图保存为pb文件。 |
||
|
用于更新Graph的Feature内存基址。 |
||
|
用于更新除了Fixed之外可刷新的Feature内存基址。 |
||
|
将用户基于Stream注册的Allocator销毁,适用于使用用户的内存池场景。 |
GESession API
|
接口列表 |
功能描述 |
头文件/库文件 |
|---|---|---|
|
GeSession构造函数和析构函数。 |
|
|
|
向GeSession中添加Graph,GeSession内会生成唯一的Graph ID。 |
||
|
向GeSession中添加Graph,GeSession内会生成唯一的Graph ID。 |
||
|
同步编译指定ID对应的Graph图。 |
||
|
GE退出,释放GE相关资源。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的错误描述信息。 |
||
|
获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的告警信息。 |
||
|
初始化GE,完成运行准备。 |
||
|
查询图编译结果的概要信息。包括Feature内存大小、Const内存大小、Stream、Event数目及内存是否可刷新等信息。 |
||
|
获取图编译后的序列化模型。 |
||
|
获取Session的ID。 |
||
|
Graph是否需要重新编译。 |
||
|
加载图并为其执行做准备,包括申请与管理图运行所需的内存及计算流等资源。 |
||
|
注册回调函数。 |
||
|
用户将自己的Allocator注册给GE,适用于使用用户的内存池场景。 |
||
|
在当前GeSession中删除指定ID对应的Graph。 |
||
|
同步运行指定ID对应的Graph图,输出运行结果。 |
||
|
异步运行指定ID对应的Graph图,输出运行结果。 |
||
|
异步运行指定ID对应的Graph图,输出执行结果。 |
||
|
设置Graph的Const内存基址。 |
||
|
用于指定图的不同内存类型的Fixed Feature内存基地址。 |
||
|
用于更新Graph的Feature内存基址。 |
||
|
用于更新除了Fixed之外可刷新的Feature内存基址。 |
||
|
将用户基于Stream注册的Allocator销毁,适用于使用用户的内存池场景。 |
图基础数据结构和接口
|
分类 |
数据结构/接口名称 |
功能描述 |
头文件/库文件 |
|---|---|---|---|
|
类和结构体 |
支持使用用户注册的外置allocator功能。 |
头文件:/include/ge/ge_allocator.h |
|
|
ArgDescInfo用来描述Kernel输入参数Args地址信息的类,它对Args地址进行语义化表达,明确了每个地址的用途和相关信息。 |
头文件:/include/graph/arg_desc_info.h |
||
|
图编译结果的概要信息。 |
|
||
|
落盘的外置权重的详细信息。 |
|
||
|
用于存储Feature内存信息。 |
|
||
|
流分配的概要信息。 |
|
||
|
逻辑流分配信息。 |
|
||
|
CtInferShapeContext继承自InferShapeContext,用于编译期Shape推导,提供编译期使用的接口。 |
头文件:/include/graph/ct_infer_shape_context.h |
||
|
CtInferShapeRangeContext继承自InferShapeRangeContext,用于编译期ShapeRange推导,提供编译期使用的接口。 |
头文件: /include/graph/ct_infer_shape_range_context.h |
||
|
获取自定义Pass上下文对象。 |
|
||
|
构造Graph相关的类。 |
|
||
|
用于保存图的缓存数据。 |
|
||
|
用户构造Graph的节点数据。 |
|
||
|
KernelLaunchInfo类为开发者提供创建和管理下发给Device的任务接口,允许开发者设置或者获取当前待下发Device任务的相关Launch信息。 |
头文件:/include/graph/kernel_launch_info.h |
||
|
OpLibRegister类所提供的接口为内部关联接口,当前主要为自定义算子动态库提供注册功能,供自定义算子工程框架注册指定初始化函数,开发者无需关注。 |
头文件: /include/register/op_lib_register.h |
||
|
一个用于改图的工具类。接收图上的一个范围,和一个替换图replacement,使用replacement将图上给定范围中的节点替换掉。 |
|
||
|
通过PatternMatcher在图上匹配到的一个结果,该结果包含匹配到的node。 |
|
||
|
用于定义图结构匹配的模板。该模板接收一个Graph,用Graph来描述待匹配的图结构。 |
|
||
|
用于做子图匹配的工具类,该类接收一个Pattern定义,和待匹配的Graph。将使用pattern对Graph进行匹配,提供MatchNext接口逐一返回匹配结果。 |
|
||
|
用于描述subgraph的一个输入tensor。 |
头文件: /include/ge/fusion/subgraph_boundary.h |
||
|
用于描述subgraph的一个输出tensor。 |
头文件:/include/ge/fusion/subgraph_boundary.h |
||
|
用于圈定subgraph边界。 |
头文件:/include/ge/fusion/subgraph_boundary.h |
||
|
分解Pass类。 |
头文件:/include/ge/fusion/pass/decompose_pass.h |
||
|
融合Pass。 |
头文件:/include/ge/fusion/pass/fusion_base_pass.h |
||
|
融合Pass注册类。 |
头文件:/include/ge/fusion/fusion_pass_reg.h |
||
|
接收一个融合pass注册信息,注册到全局单例中。 |
头文件:/include/ge/fusion/pass/fusion_pass_reg.h |
||
|
pattern融合类。 |
头文件:/include/ge/fusion/pass/pattern_fusion_pass.h |
||
|
逻辑流分配Pass上下文对象。 |
|
||
|
函数 |
模板函数,接受一个模板参数T,并将其转换为AscendString类型。这个函数的主要功能是将不同类型的字符串转换为AscendString类型。 |
头文件:/include/graph/operator_reg.h |
|
|
定义了一个模板函数ConvertToListAscendString,用于将不同类型的字符串列表转换为AscendString类型的列表。 |
头文件:/include/graph/operator_reg.h |
||
|
宏 |
提供公共函数宏封装,供算子开发者开发InferShape函数。该函数基于2个输入的shape,设置输出的shape。该宏只是设置shape,未设置dtype。 |
头文件:/include/graph/operator_reg.h |
|
|
注册算子的InferShape函数。 |
头文件:/include/graph/operator_reg.h |
||
|
提供公共函数宏封装,供算子开发者开发InferShape函数。该函数基于输入的shape和dtype,设置输出的shape和dtype。 |
头文件:/include/graph/operator_reg.h |
||
|
封装算子的Common_InferShape函数。 |
头文件:/include/graph/operator_reg.h |
||
|
封装算子的inferFormat函数。 |
头文件:/include/graph/operator_reg.h |
||
|
封装算子的InferShape函数。 |
头文件:/include/graph/operator_reg.h |
||
|
封装算子的Verify函数。 |
头文件:/include/graph/operator_reg.h |
||
|
注册算子的InferFormat实现。 |
头文件:/include/graph/operator_reg.h |
||
|
注册算子的InferShape函数。 |
头文件:/include/graph/operator_reg.h |
||
|
注册自定义Pass函数。 |
头文件:/include/register/register_custom_pass.h |
||
|
注册算子的Verify函数。 |
头文件:/include/graph/operator_reg.h |
||
|
原型定义接口。 |
头文件:/include/graph/operator_reg.h |
||
|
原型定义衍生接口。 |
头文件:/include/graph/operator_reg.h |
||
|
C接口 |
获取自定义算子库的路径。 |
头文件:/include/register/register_base.h |
|
|
获取根图和子图的所有节点。 |
头文件:/include/ge/ge_graph_compile_summary.h |
||
|
获取根图和子图附属逻辑从流ID。 |
|||
|
获取根图和子图的实际通信从流的物理流数量。 |
|||
|
获取根图和子图的逻辑流ID。 |
|||
|
获取根图和子图的实际物理流数量。 |
|||
|
获取根图和子图的逻辑流信息字符串。 |
|||
|
获取根图和子图的流图。 |
|||
|
获取根图和子图的用户流标签。 |
|||
|
获取根图和子图是否由用户注册的流分配Pass分配。 |
数据类型和配置参数
|
接口列表 |
功能描述 |
头文件/库文件 |
|---|---|---|
|
- |
头文件:/include/ge/ge_api_types.h |
|
|
- |
||
|
- |
||
|
- |
||
|
- |
||
|
- |
||
|
Args地址的类型。 |
头文件:/include/graph/arg_desc_info.h |
|
|
ArgDescInfo隐藏输入地址的类型。 |
||
|
Dump文件的格式。 |
头文件:/include/graph/graph.h |
|
|
- |
头文件:/include/ge/ge_api_types.h |
|
|
内存缓冲区中的序列化模型数据。 |
|
|
|
Profiling数据类型配置文件。 |
|
|
|
Profiling AI Core metrics。 |
||
|
GE错误码及宏相关信息。 |
|
|
|
SetAttr接口可设置的属性名称。 |
头文件:/include/ge/ge_api_types.h |