Skip to main content

函数:destroy_handle

函数: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)

在线提单