Skip to main content

函数:numpy_to_ptr

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

note

须知

该接口即将废弃,建议使用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

note

须知

该接口即将废弃,建议使用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模块

在线提单