下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

函数:numpy_to_ptr

C函数原型

Python函数

ptr = acl.util.numpy_to_ptr(data)

函数功能

将numpy数组转换成为void*数据,可以将转换好的数据传递给C函数直接使用。

输入说明

data:numpy类型数据。

返回值说明

ptr:int,可以被C语言访问的数据。

约束说明

访问的是int类型的数据,需要将void*转换为int*。

注意事项

  • 该函数输入的生命周期需要大于输出的生命周期,否则可能会产生未定义行为。
  • 若传入的numpy数组在内存上是非行连续的,在接口调用时会打印如下提示信息:
    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数组在内存上列不连续。

  • 该接口即将废弃,建议使用acl.util.bytes_to_ptr接口。
  • 修改示例如下:
    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)
  • 若要继续使用该接口,需要运行环境为python≥3.8且numpy≥1.22.0。
搜索结果
找到“0”个结果

当前产品无相关内容

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