函数:create_handle
函数:set_attr_list_float
| C函数原型 | aclError aclopSetAttrListFloat**(**aclopAttr *attr, const char *attrName, int numValues, const float *attrValue); |
|---|---|
| Python函数 | ret = acl.op.set_attr_list_float(attr, attr_name, num_values , attr_value) |
| 函数功能 | 设置float类型列表的属性值,同步接口。 |
| 输入说明 | attr:int,acl算子属性地址对象, 此对象使用调用acl.op.create_attr创建。 attr_name: str,属性名。 attr_value:同时支持两种数据类型作为输入。 - list,list中每个元素的数据类型为float。 - numpy object,一维数组numpy对象,类型为float32。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 建议attr_value使用list数据类型,后续将不支持numpy作为输入。 - 若attr_value需使用numpy数组,需要运行环境为python>=3.8且numpy>=1.22.0。 |
父主题: 算子加载与执行(op)
函数:set_attr_list_string
| C函数原型 | aclError aclopSetAttrListString**(**aclopAttr *attr, const char *attrName, int numValues, const char **attrValue); |
|---|---|
| Python函数 | ret = acl.op.set_attr_list_string(attr, attr_name , attr_value) |
| 函数功能 | 设置字符串类型列表的属性值,同步接口。 |
| 输入说明 | attr:int,acl算子属性地址对象, 此对象使用调用acl.op.create_attr创建。 attr_name:str,属性名。 attr_value:list,每个元素是字符串的列表。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子加载与执行(op)
函数:set_attr_list_list_int
| C函数原型 | aclError **aclopSetAttrListListInt(**aclopAttr ***attr,****const char *attrName,****int numLists,****const int *numValues,**const int64_t *const values[]); |
|---|---|
| Python函数 | ret = acl.op.set_attr_list_list_int(attr, attr_name , values) |
| 函数功能 | 设置int64_t类型列表的列表属性值,同步接口。 |
| 输入说明 | attr:int,acl算子属性地址对象, 此对象使用调用acl.op.create_attr创建。 attr_name:str,属性名。 values:list,列表中每个元素是一个list(list的每个元素数据类型为int)或一个一维数组numpy对象(numpy对象的类型为int64)。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 建议values使用list数据类型,后续将不支持numpy作为输入。 - 若values需使用numpy数组,需要运行环境为python>=3.8且numpy>=1.22.0。 |
父主题: 算子加载与执行(op)
函数:create_handle
| C函数原型 | aclError **aclopCreateHandle(const char *opType,****int numInputs,****int numInputs,****const aclTensorDesc *const inputDesc[],****int numOutputs,**const aclTensorDesc ***const outputDesc[],**const aclopAttr ***opAttr,**aclopHandle **handle); |
|---|---|
| Python函数 | handle, ret = acl.op.create_handle(op_type, input_desc, output_desc, op_attr) |
| 函数功能 | 创建一个执行算子的handle,同步接口。 |
| 输入说明 | op_type:str,指定算子类型名称字符串类型。 input_desc:list,算子输入tensor的描述,整形列表。 对于算子有constant输入的场景,调用acl.set_tensor_place_ment设置TensorDesc的placement属性,不支持将mem_type设置为Host内存。 output_desc:list,算子输出tensor的描述,整形列表。 对于算子有constant输入的场景,调用acl.set_tensor_place_ment设置TensorDesc的placement属性,不支持将mem_type设置为Host内存。 op_attr:int,算子属性地址对象,此对象使用调用acl.op.create_attr创建。 |
| 返回值说明 | handle:int,算子handle地址对象。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子加载与执行(op)
函数:destroy_handle
| C函数原型 | **void aclopDestroyHandle(**aclopHandle *handle) |
|---|---|
| Python函数 | acl.op.destroy_handle(handle) |
| 函数功能 | 销毁一个执行算子的handle,同步接口。 |
| 输入说明 | handle:int,待销毁的acl的算子Handle的地址对象。 |
| 返回值说明 | 无 |
| 约束说明 | 销毁类接口:调用该接口后,不能继续使用已释放或销毁的资源,建议调用该接口后,将相关资源设置为无效值(例如,置为0或None)。 |
父主题: 算子加载与执行(op)
函数:infer_shape
| C函数原型 | aclError aclopInferShape(const char *opType, int numInputs, aclTensorDesc *inputDesc[], aclDataBuffer *inputs[], int numOutputs, aclTensorDesc *outputDesc[], aclopAttr *attr) |
|---|---|
| Python函数 | ret = acl.op.infer_shape(op_type, in_desc_list, in_list, num_outputs, out_desc_list, attr) |
| 函数功能 | 根据算子的输入Shape、输入值推导出算子的输出Shape。 |
| 输入说明 | op_type:int,指定算子类型名称。 in_desc_list:list,算子输入tensor的描述。需提前调用create_tensor_desc接口创建aclTensorDesc类型 in_list:list,算子输入tensor。 此处算子输入tensor数据的内存必须根据应用运行模式来确定,应用运行在Host时,此处需申请Host上的内存。应用运行在Device时,此处需申请Device上的内存。内存申请接口请参见内存管理。此处需申请Device上的内存。内存申请接口请参见内存管理。 num_outputs:int,算子输出tensor的数量。 attr:int,算子的属性地址对象。 |
| 输出说明 | out_desc_list:list,算子输出tensor的描述。需提前调用create_tensor_desc接口创建aclTensorDesc类型。out_desc_list数组中的元素个数必须与num_outputs参数值保持一致。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 推导算子的输出Shape包含三种场景: - 根据Shape推导,可以得到算子的准确输出Shape,则返回准确输出Shape。 - 根据Shape推导,无法得到算子的准确输出Shape,但可以得到输出Shape的范围,则在输出参数outputDesc中将算子输出tensor描述中的动态维度的维度值记为-1。该场景下,用户可调用get_tensor_desc_dim_range接口获取tensor描述中指定维度的范围值。 - (该场景预留)根据Shape推导,无法得到算子的准确输出Shape以及Shape范围,则在输出参数outputDesc中将算子输出tensor描述中的动态维度的维度值记为-2。 - 如果算子有动态输入或动态输出,在调用acl.op.infer_shape接口推导算子的输出Shape前,需先调用set_tensor_desc_name接口设置所有输入和输出的tensor描述的名称,且名称必须按照如下要求(算子IR原型中定义的输入/输出名称请参见《算子清单》。) - 对于必选输入、可选输入、必选输出,名称必须与算子IR原型中定义的输入/输出名称保持一致。 - 对于动态输入、动态输出,名称必须是:算子IR原型中定义的输入/输出名称+编号。编号根据动态输入/输出的个数确定,从0开始,0对应第一个动态输入/输出,1对应第二个动态输入/输出,以此类推。 例如某个算子有2个输入(第1个是必选输入x,第二个是动态输入y且输入个数为2)、1个必选输出z,则调用set_tensor_desc_name接口设置名称的代码示例如下: text<br> acl.set_tensor_desc_name(input_tensor_desc[0], "x");<br> acl.set_tensor_desc_name(input_tensor_desc[1], "y0");<br> acl.set_tensor_desc_name(input_tensor_desc[2], "y1");<br> acl.set_tensor_desc_name(input_tensor_desc[0], "z");<br> |
父主题: 算子加载与执行(op)
函数:set_attr_data_type
| C函数原型 | aclError **aclopSetAttrDataType(**aclopAttr *attr, const char *attrName, aclDataType attrValue) |
|---|---|
| Python函数 | attr, ret = acl.op.set_attr_data_type**(**attr, attr_name, attr_value) |
| 函数功能 | 设置指定属性的数据类型。同步接口。 |
| 输入说明 | attr_name:str,属性名。 attr_value:int,属性值。 |
| 返回值说明 | attr:aclopAttr类型的指针地址。需提前调用acl.op.create_attr接口创建aclopAttr类型。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 算子加载与执行(op)
在线提单