cupy.cuda.MemoryPointer#

class cupy.cuda.MemoryPointer(BaseMemory mem, ptrdiff_t offset)[source]#

指向设备内存中某个点的指针。

此类的实例持有原始内存缓冲区的引用以及指向该缓冲区内某个位置的指针。

参数:
  • mem (BaseMemory) – 设备内存缓冲区。

  • offset (int) – 从缓冲区头部到此指针所指向位置的偏移量。

变量:
  • ~MemoryPointer.device (Device) – 指针所指向内存所属的设备。

  • ~MemoryPointer.mem (BaseMemory) – 设备内存缓冲区。

  • ~MemoryPointer.ptr (int) – 指向缓冲区内位置的指针。

方法

copy_from(self, mem, size_t size)#

从(可能是不同)设备或主机复制内存序列。

此函数是一个有用的接口,它会从 copy_from_device()copy_from_host() 中选择合适的一个。

参数:

警告

此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_from_async

copy_from_async(self, mem, size_t size, stream=None)#

从任意位置异步复制内存序列。

此函数是一个有用的接口,它会从 copy_from_device_async()copy_from_host_async() 中选择合适的一个。

参数:
copy_from_device(self, MemoryPointer src, size_t size)#

从(可能是不同)设备复制内存序列。

参数:

警告

此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_from_device_async

copy_from_device_async(self, MemoryPointer src, size_t size, stream=None)#

从(可能是不同)设备异步复制内存。

参数:
copy_from_host(self, mem, size_t size)#

从主机内存复制内存序列。

参数:

警告

此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_from_host_async

copy_from_host_async(self, mem, size_t size, stream=None)#

从主机内存异步复制内存序列。

参数:
  • mem (int or ctypes.c_void_p) – 目标内存指针。它必须指向固定内存。

  • size (int) – 序列大小(字节)。

  • stream (cupy.cuda.Stream) – CUDA 流。默认使用当前上下文的 CUDA 流。

copy_to_host(self, mem, size_t size)#

复制内存序列到主机内存。

参数:

警告

此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_to_host_async

copy_to_host_async(self, mem, size_t size, stream=None)#

异步复制内存序列到主机内存。

参数:
  • mem (int or ctypes.c_void_p) – 目标内存指针。它必须指向固定内存。

  • size (int) – 序列大小(字节)。

  • stream (cupy.cuda.Stream) – CUDA 流。默认使用当前上下文的 CUDA 流。

memset(self, int value, size_t size)#

用常量字节值填充内存序列。

参数:
  • value (int) – 要填充的值。

  • size (int) – 序列大小(字节)。

警告

此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 memset_async

memset_async(self, int value, size_t size, stream=None)#

用常量字节值异步填充内存序列。

参数:
  • value (int) – 要填充的值。

  • size (int) – 序列大小(字节)。

  • stream (cupy.cuda.Stream) – CUDA 流。默认使用当前上下文的 CUDA 流。

__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。

属性

device#
device_id#
mem#
ptr#