接口列表
本文档主要描述UDF(User Define Function)模块对外提供的接口,用户可以调用这些接口进行自定义处理函数的开发,然后通过DataFlow构图在CPU上执行该处理函数。
您可以在CANN软件安装后文件存储路径下的“include/flow_func”查看对应接口的头文件。
接口分类及对应头文件
接口分类 |
头文件路径 |
---|---|
AttrValue类 |
attr_value.h |
AscendString类 |
ascend_string.h |
MetaContext类 |
meta_context.h |
FlowMsg类 |
flow_msg.h |
Tensor类 |
flow_msg.h |
MetaFlowFunc类 |
meta_flow_func.h |
MetaMultiFunc类 |
meta_multi_func.h |
FlowFuncRegistrar类 |
meta_multi_func.h |
MetaParams类 |
meta_params.h |
MetaRunContext类 |
meta_run_context.h |
UdfTprt类 |
udf_tprt.h |
UdfTprtTaskAttr类 |
udf_tprt.h |
OutOptions类 |
out_options.h |
BalanceConfig类 |
balance_config.h |
注册宏 |
meta_flow_func.h meta_multi_func.h |
UDF日志接口 |
flow_func_log.h |
错误码 |
flow_func_defines.h |
AttrValue类
接口名称 |
简介 |
---|---|
AttrValue构造函数和析构函数。 |
|
获取string类型的属性值。 |
|
获取list string类型的属性值。 |
|
获取int类型的属性值。 |
|
获取list int类型的属性值。 |
|
获取list list int类型的属性值。 |
|
获取float类型的属性值。 |
|
获取list float类型的属性值。 |
|
获取bool类型的属性值。 |
|
获取list bool类型的属性值。 |
|
获取TensorDataType类型的属性值。 |
|
获取list TensorDataType类型的属性值。 |
AscendString类
接口名称 |
简介 |
---|---|
AscendString构造函数和析构函数。 |
|
获取字符串地址。 |
|
对于AscendString对象大小比较的使用场景(例如map数据结构的key进行排序),通过重载以下关系符实现。 |
|
获取字符串的长度。 |
MetaContext类
接口名称 |
简介 |
---|---|
MetaContext构造函数和析构函数。 |
|
根据shape和data type申请tensor类型的msg。该函数供Proc调用。 |
|
申请空数据的MsgType类型的message。该函数供Proc调用。 |
|
设置指定index的output的tensor。该函数供Proc调用。 |
|
根据属性名获取AttrValue类型的指针。该函数供Init调用。 |
|
根据属性名获取对应的属性值。该函数供Init调用。 |
|
同步执行指定的模型。该函数供Proc调用。 |
|
获取Flowfunc的输入个数。该函数供Init调用。 |
|
获取Flowfunc的输出个数。该函数供Init调用。 |
|
获取Flowfunc的工作路径。该函数供Init调用。 |
|
获取正在运行的设备ID。该函数供Init调用。 |
|
获取用户数据。该函数供Proc调用。 |
|
根据shape、data type和对齐大小申请tensor类型的FlowMsg,与AllocTensorMsg函数区别是AllocTensorMsg默认申请以64字节对齐,此函数可以指定对齐大小,方便性能调优。 |
|
UDF主动上报异常,该异常可以被同作用域内的其他UDF捕获。 |
|
UDF获取异常,如果开启了异常捕获功能,需要在UDF中Proc函数开始位置尝试捕获异常。 |
FlowMsg类
接口名称 |
简介 |
---|---|
FlowMsg构造函数和析构函数。 |
|
获取FlowMsg的消息类型。 |
|
获取FlowMsg中的tensor指针。 |
|
设置FlowMsg消息中的错误码。 |
|
获取输入FlowMsg消息中的错误码。 |
|
设置FlowMsg消息头中的开始时间戳。 |
|
获取FlowMsg消息中的开始时间戳。 |
|
设置FlowMsg消息头中的结束时间戳。 |
|
获取FlowMsg消息中的结束时间戳。 |
|
设置FlowMsg消息头中的flags。 |
|
获取FlowMsg消息头中的flags。 |
|
设置路由的标签。 |
|
获取FlowMsg消息中的事务ID,事务ID从1开始计数,每feed一批数据,事务ID会加一,可用于识别哪一批数据。 |
|
返回FlowMsg中所有的tensor指针列表。 |
|
获取rawdata类型的数据对应的数据指针和数据大小。 |
Tensor类
接口名称 |
简介 |
---|---|
Tensor构造函数和析构函数。 |
|
获取Tensor的Shape。 |
|
获取Tensor中的数据类型。 |
|
获取Tensor中的数据。 |
|
获取Tensor中的数据大小。 |
|
获取Tensor中的元素的个数。 |
|
获取Tensor中的对齐后的数据大小。 |
|
对tensor进行Reshape操作,不改变tensor的内容。 |
MetaFlowFunc类
接口名称 |
简介 |
---|---|
用户继承该类进行自定义的单func处理函数的编写。在析构函数中,执行释放相关资源操作。 |
|
设置flow func的上下文信息。 |
|
用户自定义flow func的初始化函数。 |
|
用户自定义flow func的处理函数。 |
|
注册flow func。 不建议直接使用该函数,建议使用MetaFlowFunc注册函数宏来注册flow func。 |
|
REGISTER_FLOW_FUNC_INNER(name, ctr, clazz) 和REGISTER_FLOW_FUNC_IMPL(name, ctr, clazz)是MetaFlowFunc注册函数宏的实现,不建议用户直接调用。 |
MetaMultiFunc类
接口名称 |
简介 |
---|---|
用户继承该类进行自定义的多func处理函数的编写。在析构函数中,执行释放相关资源操作。 |
|
用户自定义flow func的初始化函数。 |
|
用户自定义多flow func的处理函数。 |
|
注册多flow func。 不建议直接使用该函数,建议使用MetaMultiFunc注册函数宏来注册flow func。 |
FlowFuncRegistrar类
接口名称 |
简介 |
---|---|
注册多flow func处理函数,结合MetaMultiFunc注册函数宏来注册flow func。 |
|
创建多func处理对象和处理函数,框架内部使用,用户不直接使用。 |
MetaParams类
MetaRunContext类
接口名称 |
简介 |
---|---|
MetaRunContext构造函数和析构函数。 |
|
根据shape和data type申请tensor类型的msg。该函数供Proc调用。 |
|
设置指定index的output的tensor。该函数供Proc调用。 |
|
同步执行指定的模型。该函数供Proc调用。 |
|
申请空数据的MsgType类型的message。 |
|
获取用户数据。该函数供Proc调用。 |
|
设置指定index和options的输出,该函数供func函数调用。 |
|
批量设置指定index和options的输出,该函数供func函数调用。 |
|
根据shape、data type和对齐大小申请tensor类型的FlowMsg,与AllocTensorMsg函数区别是AllocTensorMsg默认申请以64字节对齐,此函数可以指定对齐大小,方便性能调优。 |
|
根据输入的dtype shapes数组输入一块连续内存,用于承载tensor数组。 |
|
UDF主动上报异常,该异常可以被同作用域内的其他UDF捕获。 |
|
UDF获取异常,如果开启了异常捕获功能,需要在UDF中Proc函数开始位置尝试捕获异常。 |
UdfTprt类
接口名称 |
简介 |
---|---|
打开TPRT并行能力,默认关闭。 |
|
用户自定义函数将task提交给TPRT调度,并描述task间的数据依赖关系。Submit是异步接口,返回时task不一定执行完成。如果用户需要等待task完成,可以调用Wait接口进行同步。 |
|
同步等待提交给TPRT的task全部执行完成。 |
|
获取工作线程数量。 |
|
获取当前函数执行线程的id。 |
|
纯数据并发接口。 |
UdfTprtTaskAttr类
接口名称 |
简介 |
---|---|
UdfTprtTaskAttr的构造和析构函数。 |
|
设置任务名称。 |
|
获取任务名称。 |
|
设置任务优先级。 |
|
获取任务优先级。 |
OutOptions类
接口名称 |
简介 |
---|---|
OutOptions的构造和析构函数。 |
|
获取或创建BalanceConfig。 |
|
获取BalanceConfig。 |
BalanceConfig类
接口名称 |
简介 |
---|---|
BalanceConfig的构造和析构函数。 |
|
设置均衡分发亲和性。 |
|
获取亲和性。 |
|
设置均衡分发权重信息。 |
|
获取均衡分发权重信息。 |
|
设置输出数据对应权重矩阵中的位置。 |
|
获取输出数据对应权重矩阵中的位置。 |
注册宏
接口名称 |
简介 |
---|---|
注册MetaFlowFunc的实现类。 |
|
注册MetaMultiFunc的实现类。 |
UDF日志接口
接口名称 |
简介 |
---|---|
FlowFuncLogger构造函数和析构函数。 |
|
获取日志实现类。 |
|
获取日志扩展头信息。 |
|
查询对应级别和类型的日志是否开启。 |
|
记录ERROR级别日志。 |
|
记录Warn级别日志。 |
|
记录Info级别日志。 |
|
记录Debug级别日志。 |
|
运行日志Error级别日志宏。 |
|
运行日志Info级别日志宏。 |
|
调试日志Error级别日志宏。 |
|
调试日志Warn级别日志宏。 |
|
调试日志Info级别日志宏。 |
|
调试日志Debug级别日志宏。 |
错误码
错误码模块 |
简介 |
---|---|
udfrefc_23_00156.html#ZH-CN_TOPIC_0000002082061833__section1390959132616 |
提供了flowfunc的错误码供用户使用,主要用于对异常逻辑的判断处理。 |
udfrefc_23_00156.html#ZH-CN_TOPIC_0000002082061833__section119131377263 |
AICPU在执行模型的过程中,有可能向用户上报的错误码。 |