cupy.cuda.MemoryPointer#
- class cupy.cuda.MemoryPointer(BaseMemory mem, ptrdiff_t offset)[source]#
指向设备内存中某个点的指针。
此类的实例持有原始内存缓冲区的引用以及指向该缓冲区内某个位置的指针。
- 参数:
mem (BaseMemory) – 设备内存缓冲区。
offset (int) – 从缓冲区头部到此指针所指向位置的偏移量。
- 变量:
方法
- copy_from(self, mem, size_t size)#
从(可能是不同)设备或主机复制内存序列。
此函数是一个有用的接口,它会从
copy_from_device()
和copy_from_host()
中选择合适的一个。- 参数:
mem (int or ctypes.c_void_p or cupy.cuda.MemoryPointer) – 源内存指针。
size (int) – 序列大小(字节)。
警告
此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_from_async。
- copy_from_async(self, mem, size_t size, stream=None)#
从任意位置异步复制内存序列。
此函数是一个有用的接口,它会从
copy_from_device_async()
和copy_from_host_async()
中选择合适的一个。- 参数:
mem (int or ctypes.c_void_p or cupy.cuda.MemoryPointer) – 源内存指针。
size (int) – 序列大小(字节)。
stream (cupy.cuda.Stream) – CUDA 流。默认使用当前上下文的 CUDA 流。
- copy_from_device(self, MemoryPointer src, size_t size)#
从(可能是不同)设备复制内存序列。
- 参数:
src (cupy.cuda.MemoryPointer) – 源内存指针。
size (int) – 序列大小(字节)。
警告
此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 PTDS,请改用 copy_from_device_async。
- copy_from_device_async(self, MemoryPointer src, size_t size, stream=None)#
从(可能是不同)设备异步复制内存。
- 参数:
src (cupy.cuda.MemoryPointer) – 源内存指针。
size (int) – 序列大小(字节)。
stream (cupy.cuda.Stream) – CUDA 流。默认使用当前上下文的 CUDA 流。
- copy_from_host(self, mem, size_t size)#
从主机内存复制内存序列。
- 参数:
mem (int or ctypes.c_void_p) – 源内存指针。
size (int) – 序列大小(字节)。
警告
此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 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)#
复制内存序列到主机内存。
- 参数:
mem (int or ctypes.c_void_p) – 目标内存指针。
size (int) – 序列大小(字节)。
警告
此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 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)#
用常量字节值填充内存序列。
警告
此函数始终使用传统的默认流,并且不遵守当前流。如果您在代码中使用流或启用了 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#