cupy.cuda.MemoryPointer#
- class cupy.cuda.MemoryPointer(BaseMemory mem, ptrdiff_t offset)[源代码]#
指向设备内存中某一点的指针。
这个类的实例持有一个指向原始内存缓冲区的引用和一个指向该缓冲区内某个位置的指针。
- 参数:
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#