昇腾社区首页
中文
注册

接口列表

本文档主要描述给应用用户或者上层框架提供了安全易用的构图接口集合,开发者可以调用这些接口构建网络模型,设置模型所包含的图、图内的算子以及算子的属性信息(包括Input、Output及其他属性信息)。

您可以在“${INSTALL_DIR}/include”路径查看对应接口的头文件。

其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。

接口分类

接口列表

功能描述

Parser解析接口

  • 头文件
    • /include/parser/tensorflow_parser.h
    • /include/parser/caffe_parser.h

    库文件:libfmk_parser.so

  • 头文件:/include/parser/onnx_parser.h

    库文件:libfmk_onnx_parser.so

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件 不支持Caffe框架

aclgrphParseTensorFlow

将TensorFlow模型解析为图。

aclgrphParseCaffe

将Caffe模型解析为图。

aclgrphParseONNX

将ONNX模型解析为图。

aclgrphParseONNXFromMem

将加载至内存的ONNX模型解析为图。

Graph构建接口

  • 头文件:/include/graph/graph.h
  • 库文件:libgraph.so

Graph构造函数和析构函数

Graph构造函数和析构函数。

SetInputs

设置Graph内的输入算子。

SetOutputs

设置Graph关联的输出算子。

SetTargets

设置Graph的结束节点列表。

IsValid

判断Graph对象是否有效,即是否可被运行。

SetNeedIteration

标记Graph是否需要循环执行。

AddOp

用户算子缓存接口,通过此接口可以将不带连接关系的算子缓存在图中,用于查询和对象获取。

FindOpByName

基于算子名称,获取缓存在Graph中的op对象。

GetAllOpName

获取Graph中已注册的所有缓存算子的名称列表。

SaveToFile

将序列化后的Graph结构保存到文件中。

LoadFromFile

从文件中读取Graph。

FindOpByType

基于算子类型,获取缓存在Graph中的所有指定类型的op对象。

GetName

获取当前图的名称。

CopyFrom

目标图的graph_name优先使用用户指定的,未指定则使用原图的graph_name。graph_id/session归属,拷贝后需要用户自行添加。

LoadFromMem

从内存中读取序列化后Graph。

SaveToMem

将序列化后的Graph保存到内存中。

LoadFromSerializedModelArray

从ModelDef的序列化数据中恢复Graph。

Graph修改接口>Graph类

  • 头文件:/include/graph/graph.h
  • 库文件:libgraph.so

GetAllNodes

获取图中的所有节点,包含本图包含子图的节点。

GetDirectNode

获取本图中的所有节点,不包含本图内子图的节点。

RemoveNode

删除图中的指定节点,并删除节点之间的连边。

RemoveEdge

删除图中的指定连接边。

AddNodeByOp

新增一个节点到图上。

AddDataEdge

新增一条数据边。

AddControlEdge

新增一个控制边。

ConstructFromInputs

功能与SetInputs一致。SetInputs未来会逐步消亡,统一使用此接口。

Graph修改接口>GNode类

  • 头文件:/include/graph/gnode.h
  • 库文件:libgraph.so

GNode构造函数和析构函数

GNode构造函数和析构函数。

GetType

获取算子type。

GetName

获取算子名字。

GetInDataNodesAndPortIndexs

获取算子指定输入端口对应的对端算子以及对端算子的输出端口号。

GetInControlNodes

获取算子的控制输入节点。

GetOutDataNodesAndPortIndexs

获取算子指定输出端口对应的对端算子以及对端算子的输入端口号。

GetOutControlNodes

获取算子的控制输出节点。

GetInputConstData

如果算子的输入是Const节点,会返回Const节点的值,否则返回失败。支持跨子图获取输入是否是Const及Const下的value。

GetInputIndexByName

通过算子的端口名获取输入端口index。

GetDynamicInputIndexesByName

通过算子的动态输入端口名获取动态输入端口indexes。

GetOutputIndexByName

通过算子的端口名获取输出端口index。

GetDynamicOutputIndexesByName

通过算子的动态输出端口名获取动态输出端口indexes。

GetInputsSize

返回节点的有效输入个数,即算子的实际输入个数。

GetOutputsSize

返回有效输出个数,即算子定义时的输出个数。

GetInputDesc

获取指定输入端口的tensor格式。

UpdateInputDesc

更新指定输入端口的tensor格式。

GetOutputDesc

获取指定输出端口的tensor格式。

UpdateOutputDesc

更新指定输出端口的tensor格式。

SetAttr

设置Node属性的属性值。

GetAttr

获取指定属性名字的值。

HasAttr

查询属性是否存在。

GetSubgraph

获取当前节点的第index个子图对象。

GetALLSubgraphs

获取当前节点根图的所有子图对象。

Graph修改接口>CustomPassContext类

  • 头文件:/include/register/register_custom_pass.h
  • 库文件:libregister.so

CustomPassContext构造函数和析构函数

CustomPassContext构造函数和析构函数。

SetErrorMessage

向框架注册图修改阶段遇到的错误信息。

Graph修改接口>REGISTER_CUSTOM_PASS

  • 头文件:/include/register/register_custom_pass.h
  • 库文件:libregister.so

REGISTER_CUSTOM_PASS

开发人员可以选择将改图函数注册到框架中,由框架在编译最开始调用自定义改图pass,调用REGISTER_CUSTOM_PASS进行自定义pass注册。

Graph修改接口>PassRegistrationData类

  • 头文件:/include/register/register_custom_pass.h
  • 库文件:libregister.so

PassRegistrationData构造函数和析构函数

PassRegistrationData构造函数和析构函数。

CustomPassFn

注册自定义Pass的执行函数。

GetCustomPassFn

获取自定义Pass的执行函数。

Stage

设置自定义Pass执行阶段。

GetStage

获取自定义Pass执行阶段。

CustomAllocateStreamPassFn

注册自定义的逻辑流分配Pass执行函数。

GetCustomAllocateStreamPass

获取自定义的逻辑流分配Pass执行函数。

Graph修改接口>PassReceiver类

  • 头文件:/include/register/register_custom_pass.h
  • 库文件:libregister.so

PassReceiver构造函数和析构函数

PassReceiver构造函数和析构函数。

Graph修改接口>Session类

  • 头文件:/include/ge/ge_api.h
  • 库文件:libge_runner.so

ShardGraphs

切分图接口,对Session内的图按照AddGraph的顺序进行切分,切分后的图保存在内存中

ShardGraphsToFile

切分图接口,对Session内的图按照AddGraph的顺序进行切分,切分后的图保存为pb文件

SaveGraphsToPb

保存Session内图接口,将图保存为pb文件,支持Session内的权重共享功能(即Session内两张图若有两个权重值是一致的,则只会保存一份权重)。

Graph修改接口>GraphBuffer类

  • 头文件:/include/graph/graph_buffer.h
  • 库文件:libgraph_base.so

GraphBuffer的构造函数和析构函数

GraphBuffer构造函数和析构函数。

GetData

获取序列化后的Graph的内存起始位置。

GetSize

获取序列化后的Graph的内存的长度。

Graph修改接口>StreamPassContext类

  • 头文件:/include/register/register_custom_pass.h
  • 库文件:libregister.so

StreamPassContext构造函数和析构函数

StreamPassContext构造函数和析构函数。

SetStreamId

设置某节点的Stream ID,拥有相同Stream ID的节点将会在同一条流上依次执行。

GetStreamId

获取节点上当前的Stream ID,其结果表示经过内置流分配算法以后该节点被分配的Stream ID。

AllocateNextStreamId

申请新的Stream ID,当希望申请新逻辑流的时候,需要调用该接口。

GetCurrMaxStreamId

获取当前图上最大的Stream ID。

Graph编译接口

  • 头文件:/include/ge/ge_ir_build.h
  • 库文件:libge_compiler.so

aclgrphBuildInitialize

模型构建的初始化函数,用于申请资源。

aclgrphBuildModel

编译生成离线模型并保存到内存缓冲区。

aclgrphSaveModel

将离线模型序列化并保存到指定文件中。

aclgrphBuildOfflineModel

将Graph编译为适配昇腾AI处理器的离线模型并同时生成*.om和*.exeom文件。

aclgrphBuildFinalize

系统完成模型构建后,通过该接口释放资源。

aclgrphConvertToWeightRefreshableGraphs

通过传入Const节点名数组将原图转换成一组权重可更新的图。

aclgrphBundleBuildModel

aclgrphBuildModel接口的区别是,该接口适用于权重更新场景。通过aclgrphBundleBuildModel接口生成离线模型缓存后,需要使用aclgrphBundleSaveModel接口落盘。

aclgrphBundleSaveModel

将离线模型序列化并保存到指定文件中。

Graph运行接口

  • 头文件:/include/ge/ge_api.h
  • 库文件:libge_runner.so
  • 头文件:/include/ge/ge_graph_compile_summary.h
  • 库文件:libge_compiler.so

Atlas 200/300/500 推理产品 不支持该特性。

Atlas 200I/500 A2 推理产品 不支持该特性

GEInitialize

初始化GE,完成运行准备。

GEFinalize

GE退出,释放GE相关资源。

Session构造函数和析构函数

Session构造函数和析构函数。

GetVariables

变量查询接口,获取Session内所有variable算子或指定variable算子的tensor内容。

GetSessionId

获取Session的ID。

AddGraph

向Session中添加Graph,Session内会生成唯一的Graph ID。

AddGraphWithCopy

向Session中添加Graph,Session内会生成唯一的Graph ID。

RemoveGraph

在当前Session中删除指定ID对应的Graph。

LoadGraph

  • 大模型分布式编译切分场景:

    将om离线模型加载到当前session中,并根据传入的graphid,将modelGraphId关联,LoadGraph成功后可以使用RunGraph接口指定GraphId进行执行

  • 异步执行Graph场景:

    将指定graphid的图绑定到对应stream上,LoadGraph成功后可以使用ExecuteGraphWithStreamAsync接口执行图。

GeSessionLoadGraph

只有异步执行Graph场景使用,使用指定的session,将指定graphid的图绑定到对应stream上。

RunGraph

同步运行指定id对应的Graph图,输出运行结果。

RunGraphAsync

异步运行指定id对应的Graph图,输出运行结果。

RunGraphWithStreamAsync

异步运行指定id对应的Graph图,输出运行结果。该接口包括了编译,加载和运行Graph的操作

ExecuteGraphWithStreamAsync

异步运行指定id对应的Graph图,输出执行结果。

GeSessionExecuteGraphWithStreamAsync

使用指定的Session实例,异步运行指定id对应的Graph图,输出执行结果。

RunGraphDistribute

对输入refdata节点切分后,同步运行指定id对应的Graph图,输出运行结果。

BuildGraph

同步编译指定id对应的Graph图,生成可用于执行的模型。

CompileGraph

同步编译指定id对应的Graph图。与BuildGraph相比,该接口仅包含图编译功能,不生成可用于执行的模型,BuildGraph包含了图编译过程,并在编译完成后进行模型所需内存资源的初始化,生成可用于执行的模型。

RegisterCallBackFunc

注册回调函数。

IsGraphNeedRebuild

图是否需要重新编译。

GetCompiledGraphSummary

查询图编译结果的概要信息。包括Feature内存大小、Const内存大小、Stream、Event数目及内存是否可刷新等信息。

SetGraphConstMemoryBase

设置Graph的Const内存基址。

UpdateGraphFeatureMemoryBase

用于更新Graph的Feature内存基址。

SetGraphFixedFeatureMemoryBase

用于指定图的Fixed Feature内存基地址。

SetGraphFixedFeatureMemoryBaseWithType

用于指定图的不同内存类型的Fixed Feature内存基地址。

UpdateGraphRefreshableFeatureMemoryBase

用于更新除了Fixed之外可刷新的Feature内存基址。

RegisterExternalAllocator

用户将自己的Allocator注册给GE,适用于使用用户的内存池场景。

UnregisterExternalAllocator

将用户基于stream注册的Allocator销毁,适用于使用用户的内存池场景。

PaRemapped

用于内存出现UCE(Uncorrectable Error,不可纠正错误)错误时判断此段内存是否可以快速恢复。

GEGetErrorMsg

获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的错误描述信息。

GEGetWarningMsg

获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的告警信息。

GEGetErrorMsgV2

获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的错误描述信息。

GEGetWarningMsgV2

获取并清空与本接口在同一个进程或线程中的其它接口调用失败时的告警信息。

Graph查询接口

  • 头文件:/include/ge/ge_api.h
  • 库文件:libge_runner.so

GetModelDistributeDesc

查询用于分布式编译部署的模型切分信息。

量化接口

  • 头文件:/include/amct/acl_graph_calibration.h
  • 库文件:libamctacl.so

aclgrphCalibration

将非量化Graph自动修改为量化后的Graph。详细使用场景请参见量化

维测接口

  • 头文件:/include/ge/ge_prof.h
  • 库文件:libmsprofiler.so

Atlas 200/300/500 推理产品 不支持该特性

Atlas 200I/500 A2 推理产品 不支持该特性

aclgrphProfInit

初始化Profiling,设置Profiling参数(目前供用户设置保存性能数据文件的路径)。

aclgrphProfFinalize

结束Profiling。

aclgrphProfCreateConfig

创建Profiling配置信息。

aclgrphProfDestroyConfig

销毁profiling配置信息。

aclgrphProfStart

下发Profiling请求,使能对应数据的采集。

aclgrphProfStop

停止Profiling数据采集。

其他接口

  • 头文件:/include/ge/ge_ir_build.h
  • 库文件:libge_compiler.so
  • 头文件:/include/ge/ge_api_error_codes.h
  • 库文件:libge_common_base.so

aclgrphDumpGraph

将输入的图导出到文本中。

aclgrphSetOpAttr

用于支持设置node属性方式的改图。

aclgrphGetIRVersion

获取模型构建相关接口的版本号。

aclgrphGenerateForOp

根据单算子信息或单算子json文件构建Graph。

GE_ERRORNO

-

数据类型

  • 头文件:/include/ge/ge_ir_build.h
  • 库文件:libge_compiler.so

ModelBufferData

-

数据类型

头文件:/include/ge/ge_api_types.h

aclgrphBuildInitialize支持的配置参数

-

aclgrphBuildModel支持的配置参数

-

Parser解析接口支持的配置参数

-

InputTensorInfo

-

OutputTensorInfo

-

MemoryType

-

数据类型

  • 头文件:/include/ge/ge_prof.h
  • 库文件:libmsprofiler.so

Atlas 200/300/500 推理产品 不支持该特性

Atlas 200I/500 A2 推理产品 不支持该特性

ProfDataTypeConfig

-

ProfilingAicoreMetrics

-

据类型

头文件:/include/ge/ge_api_types.h

Atlas 200/300/500 推理产品 不支持该特性

Atlas 200I/500 A2 推理产品 不支持该特性

options参数说明

-