FuncProcessPoint

函数功能

FuncProcessPoint的构造函数,返回一个FuncProcessPoint对象。

函数原型

1
2
class FuncProcessPoint(compile_config_path: Optional[str] = None, name: Optional[str] = None,
py_func: Optional = None, workspace_dir: Optional = None)

参数说明

参数名称

数据类型

取值说明

compile_config_path

str

UDF的编译配置文件,与py_func互斥。传入py_func参数后compile_config_path不生效。

配置文件示例如下:

{"func_list":[{"func_name":"Add", "inputs_index":[1,0], "outputs_index":[0]}],"input_num":2,"output_num":1,"target_bin":"libadd.so","workspace":"./","cmakelist_path":"CMakeLists.txt","compiler": "./cpu_compile.json","running_resources_info":[{"type":"cpu","num":2},{"type":"memory","num":100}],"heavy_load":false}

name

str

处理点名称,框架会自动保证名称唯一,不设置时会自动生成FuncProcessPoint, FuncProcessPoint_1, FuncProcessPoint_2,...的名称。

py_func

class

用户开发的自定义python UDF类(需要使用proc_wrapper(func_list="ix:ox")注册输入输出),与compile_config_path互斥。传入py_func参数后compile_config_path不生效。

workspace_dir

str

自动生成的Python UDF临时工作空间目录,和py_func配合使用,

该字段为空时使用py_func的名字拼接“_ws”使用。

表1 FunctionPp的json配置文件

配置项

可选/必选

描述

workspace

必选

值为字符串,UDF的工作空间路径。

target_bin

必选

值为字符串,UDF工程编译出来的so名字,为防止被非法篡改,该字符串需要以lib***.so来命名,合法的字符包含大小写字母、数字、下划线和中划线。

input_num

必选

值为数字,表示UDF的输入个数,即FunctionPp的输入个数。

output_num

必选

值为数字,表示UDF的输出个数。即FunctionPp的输出个数。

func_list

必选

值为list,list的元素为单个function的描述,当前只支持一个function。

func_list.func_name

必选

值为字符串,函数名称,要和UDF里定义的function名称一致。多function场景下,func_name不允许重复。

func_list.inputs_index

可选

值为list,list元素为数字,表示该function取FunctionPp的哪些输入,单function情况下当前无效;多function情况下该字段必选。且多个处理函数input index不共享,不能重复。

func_list.outputs_index

可选

值为list,list元素为数字,表示该function对应FunctionPp的哪些输出,单function情况下当前无效。多function情况下output index可共享。

cmakelist_path

可选

值为字符串,源码编译的CMakeLists文件相对于workspace的路径,如果未指定,则取workspace下面的默认CMakeLists文件。

CMakeLists文件的详细信息请参考CMakeLists文件

compiler

可选

值为字符串,异构环境下编译源码的交叉编译工具路径配置文件,如果未指定,则取资源类型默认的编译工具。

compiler的json配置文件内容示例和各字段含义请参考•compiler的json配置文件

running_resources_info

可选

值为list,运行当前so需要的资源信息,list的元素为单个资源信息的描述。

running_resources_info.type

可选

当配置了running_resources_info时,该字段必选。

值为字符串,运行当前so需要的资源信息的类型,可选类型是"cpu"和"memory"。当资源类型是"memory"时,单位是M。

running_resources_info.num

可选

当配置了running_resources_info时,该字段必选。

值为数字,运行当前so需要的资源信息的数量。

heavy_load

可选

表示节点对算力的诉求。

  • true:重载,表示对算力的诉求大。
  • false:轻载,表示对算力的诉求小。

默认值为false。

当该参数取值为"true"时,在Atlas A2 训练系列产品/Atlas 800I A2 推理产品场景下会影响UDF的部署位置。

buf_cfg

可选

用户可以自定义配置内存池档位,通过自定义档位可以提升内存申请效率及减少内存碎片,如未设置该参数,将使用默认的档位配置初始化内存模块,默认档位配置及该参数样例见下文[buf_cfg的json配置格式],该配置最多支持64个档位,超过64编译报错。

返回值

正常场景下返回None。

返回“TypeError”表示参数类型不正确。

调用示例

1
2
import dataflow as df
pp = df.FuncProcessPoint(...)

约束说明