Skip to content

Latest commit

 

History

History
51 lines (28 loc) · 2.64 KB

55.md

File metadata and controls

51 lines (28 loc) · 2.64 KB

3.15。 CUDA 阵列接口

原文: http://numba.pydata.org/numba-doc/latest/cuda/cuda_array_interface.html

_cuda 数组接口 _ 是为各种项目中类似 GPU 阵列的对象的不同实现之间的互操作性而创建的。这个想法来自 numpy 数组接口

注意

目前,我们只定义了 Python 端接口。将来,我们可能会添加一个 C 端接口,以便在编译代码中有效地交换信息。

3.15.1。 Python 接口规范

注意

实验功能。规格可能会改变。

__cuda_array_interface__属性是类似字典的对象,必须包含以下条目:

  • 形状(integer, ...)

    > <cite>int</cite> (或 <cite>long</cite> )的元组,表示每个维度的大小。

  • typestr : <cite>str</cite>

    > 类型字符串。这与 numpy 阵列接口中的 typestr 具有相同的定义。

  • 数据:<cite>(整数,布尔值)</cite>

    > 数据是 2 元组。第一个元素数据指针为 Python <cite>int</cite> (或 <cite>long</cite> )。数据必须是设备可访问的。第二个元素是 Python <cite>bool</cite> 的只读标志。 > > 因为接口的用户可能在同一个上下文中,也可能不在同一个上下文中,最常见的情况是在 CUDA 驱动程序 API(或等效的 CUDA Runtime API)中使用cuPointerGetAttributeCU_POINTER_ATTRIBUTE_DEVICE_POINTER来检索设备指针可用于当前活动的上下文中。

  • :<cite>整数</cite>

    > 要导出的接口版本的整数。目前的版本是 0 ,因为它仍处于试验阶段。

以下是可选条目:

  • 跨步None(integer, ...)

    > <cite>int</cite> (或 <cite>long</cite> )的元组,表示要跳过以访问每个维度的下一个元素的字节数。如果是None,则假定该数组采用 C 连续布局。

  • descr

    > 这是为了描述更复杂的类型。这遵循与 numpy 阵列接口中相同的规范。

可以使用cuPointerGetAttributecudaPointerGetAttributes检索有关数据指针的其他信息。这些信息包括:

  • 拥有指针的 CUDA 上下文;
  • 指针主机可访问?
  • 指针是一个托管内存?