函数:trans_tensor_desc_format
函数:get_tensor_desc_address
| C函数原型 | void *aclGetTensorDescAddress(const aclTensorDesc *desc) |
|---|---|
| Python函数 | addr = acl.get_tensor_desc_address(desc) |
| 函数功能 | 获取指定算子输入/输出的Tensor数据的指针地址。 |
| 输入说明 | desc:int,Tensor描述信息的指针地址。调用acl.get_tensor_desc_by_index接口获取算子所有输入/输出的Tensor描述,作为本接口的输入。 |
| 返回值说明 | addr:int,返回指定算子输入/输出的Tensor数据的指针地址。 |
| 约束说明 | 无 |
父主题: 公共接口
函数:set_tensor_place_ment
| C函数原型 | aclError aclSetTensorPlaceMent(aclTensorDesc *desc, aclMemType memType) |
|---|---|
| Python函数 | ret = acl.set_tensor_place_ment**(desc, mem_type)** |
| 函数功能 | 设置Tensor描述的placement属性,用于标识存放Tensor数据的内存为Host内存或Device内存。同步接口。 |
| 输入说明 | desc:int,Tensor描述信息的指针地址。 需提前调用acl.create_tensor_desc接口创建算子输入/输出的Tensor描述,作为本接口的输入。 mem_type:int,指定placement属性值,其取值参考aclMemType。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 公共接口
函数:set_tensor_value_range
| C函数原型 | aclError aclSetTensorValueRange(aclTensorDesc* desc, size_t valueCount, int64_t valueRange[][ACL_TENSOR_VALUE_RANGE_NUM]) |
|---|---|
| Python函数 | ret = acl.set_tensor_value_range**(desc, value_range)** |
| 函数功能 | 调用acl.create_tensor_desc接口创建Tensor描述信息后,可通过本接口设置Tensor的数据值的范围。同步接口。 使用场景:部分算子input的值就是该算子的输出Shape,在动态Shape场景下,这个Shape的值就有一个取值范围,在执行算子时,需要在input上设置Shape值的范围(例如:[[16, 16], [1, 128], [20, 20], [1, 10]]),pyACL才能正常执行算子。 |
| 输入说明 | desc:int,aclTensorDesc类型的指针地址。需提前调用函数:create_tensor_desc接口创建aclTensorDesc类型。 value_range:list,“value_range”为每个数据值的范围,用二维列表表示范围。 text<br>ACL_TENSOR_VALUE_RANGE_NUM = 2<br> |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 公共接口
函数:trans_tensor_desc_format
| C函数原型 | aclError aclTransTensorDescFormat(const aclTensorDesc *srcDesc, aclFormat dstFormat, aclTensorDesc **dstDesc**)** |
|---|---|
| Python函数 | dstDesc, ret = acl.trans_tensor_desc_format(srcDesc, dstFormat) |
| 函数功能 | 按指定dstFormat转换源aclTensorDesc中的Format,生成新的目标aclTensorDesc,源aclTensorDesc中的Format保持不变。同步接口。当前版本不支持该接口,预留接口。 |
| 输入说明 | srcDesc:int,输入源aclTensorDesc数据的指针地址。需提前调用函数:create_tensor_desc接口创建aclTensorDesc类型。 dstFormat:int,需要设置的目标Format。 |
| 输出说明 | dstDesc:int,输出aclTensorDesc的指针地址。需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 公共接口
函数:app_log
| C函数原型 | ACL_APP_LOG(aclLogLevel logLevel, const char *message) |
|---|---|
| Python函数 | acl.app_log(log_level, message) |
| 函数功能 | 将日志记录到系统相应的日志文件中。 |
| 输入说明 | log_level:int,设定日志级别。 - 0:DEBUG - 1:INFO - 2:WARNING - 3:ERROR message:str,记录的日志信息。 |
| 返回值说明 | 无 |
| 约束说明 | 无 |
父主题: 公共接口
函数:numpy_to_ptr
备注
须知
该接口即将废弃,建议使用acl.util.bytes_to_ptr接口。
| C函数原型 | 无 |
|---|---|
| Python函数 | ptr = acl.util.numpy_to_ptr(data) |
| 函数功能 | 获取numpy.ndarry数组的内存数据指针地址。 |
| 输入说明 | data:numpy.ndarray类型数据。 |
| 返回值说明 | ptr:int,numpy数组的内存数据指针地址。 |
| 约束说明 | 无 |
| 注意事项 | - 若要继续使用该接口,需要运行环境为python ≥ 3.8且numpy ≥ 1.22.0。 - 修改示例如下: text<br> np_ptr = acl.util.numpy_to_ptr(np_arr_in)<br> 修改后使用: text<br> bytes_in = np_arr_in.tobytes()<br> bytes_ptr = acl.util.bytes_to_ptr(bytes_in)<br> - 使用本函数返回的指针地址前,需要确保传入的numpy.ndarry对象生命周期还没有结束(没有被删除或被Python的GC回收),否则将会产生未定行为。 - 若传入的numpy.ndarry数组在内存上是非行连续的,在接口调用时会打印如下提示信息: text<br> Warning:The input ndarray is discontiguous. Please use acl.util.numpy_contiguous_to_ptr instead.<br> 请使用acl.util.numpy_contiguous_to_ptr接口获取numpy数组的地址对象,否则在使用acl.rt.memcpy拷贝数据时,由于acl.rt.memcpy拷贝的是连续内存地址,会导致拷贝的数据和目标拷贝数据不一致的问题。 - 可以通过numpy数组的flags属性来查看numpy数组在内存上是否连续: python<br> print(data.flags)<br> 得到结果如下: text<br> C_CONTIGUOUS : True<br> F_CONTIGUOUS : False<br> OWNDATA : True<br> WRITEABLE : True<br> ALIGNED : True<br> WRITEBACKIFCOPY : False<br> UPDATEIFCOPY : False<br> 其中“C_CONTIGUOUS:True”,则说明numpy数组在内存上行连续。“F_CONTIGUOUS : False”,则说明numpy数组在内存上列不连续。 |
父主题: Util模块
函数:numpy_contiguous_to_ptr
备注
须知
该接口即将废弃,建议使用acl.util.bytes_to_ptr接口。
| C函数原型 | 无 |
|---|---|
| Python函数 | ptr, data_out = acl.util.numpy_contiguous_to_ptr(data_in) |
| 函数功能 | 获取numpy.ndarry数组的内存数据指针地址。 若传入的numpy.ndarry数组在内存上是非行连续的,则先将其内存转行连续,然后再获取转换后的numpy.ndarry数组转换成为内存数据指针地址。 |
| 输入说明 | data****_in:numpy类型数据。 |
| 返回值说明 | ptr:int,可以被C语言访问的数据。 data****_out:numpy类型数据,若传入的numpy数组“data_in”内存非行连续,则返回值“data_out”即为其内存转行连续后的numpy数组。 |
| 约束说明 | 访问的是int类型的数据,需要将numpy.ndarray对象的内存数据指针地址转换为int。 |
| 注意事项 | - 修改示例如下:text<br> np_ptr, data_out = acl.util.numpy_contiguous_to_ptr(np_arr_in)<br> 修改后使用: text<br> bytes_in = np_arr_in.tobytes()<br> bytes_ptr = acl.util.bytes_to_ptr(bytes_in)<br> - 若要继续使用该接口,需要运行环境为python ≥ 3.8且numpy ≥ 1.22.0。 - 使用本函数返回的指针地址前,需要确保传入的numpy.ndarry对象生命周期还没有结束(没有被删除或被Python的GC回收),否则将会产生未定行为。 |
父主题: Util模块
在线提单