该接口即将废弃,建议使用acl.util.bytes_to_ptr接口。
C函数原型
无
Python函数
ptr = acl.util.numpy_to_ptr(data)
函数功能
获取numpy.ndarry数组的内存数据指针地址。
输入说明
data:numpy.ndarray类型数据。
返回值说明
ptr:int,numpy数组的内存数据指针地址。
约束说明
注意事项
np_ptr = acl.util.numpy_to_ptr(np_arr_in)
修改后使用:
bytes_in = np_arr_in.tobytes() bytes_ptr = acl.util.bytes_to_ptr(bytes_in)
Warning:The input ndarray is discontiguous. Please use acl.util.numpy_contiguous_to_ptr instead.
请使用acl.util.numpy_contiguous_to_ptr接口获取numpy数组的地址对象,否则在使用acl.rt.memcpy拷贝数据时,由于acl.rt.memcpy拷贝的是连续内存地址,会导致拷贝的数据和目标拷贝数据不一致的问题。
print(data.flags)
得到结果如下:
C_CONTIGUOUS : True F_CONTIGUOUS : False OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False
其中“C_CONTIGUOUS:True”,则说明numpy数组在内存上行连续。“F_CONTIGUOUS : False”,则说明numpy数组在内存上列不连续。