文档
注册

函数: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。
  • 修改示例如下:
    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)
  • 使用本函数返回的指针地址前,需要确保传入的numpy.ndarry对象生命周期还没有结束(没有被删除或被Python的GC回收),否则将会产生未定行为。
  • 若传入的numpy.ndarry数组在内存上是非行连续的,在接口调用时会打印如下提示信息:
    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拷贝的是连续内存地址,会导致拷贝的数据和目标拷贝数据不一致的问题。

  • 可以通过numpy数组的flags属性来查看numpy数组在内存上是否连续:
    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数组在内存上列不连续。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词