Low-Level CUDA Support

Device management

cupy.cuda.Device Object that represents a CUDA device.

Memory management

cupy.get_default_memory_pool Returns CuPy default memory pool for GPU memory.
cupy.get_default_pinned_memory_pool Returns CuPy default memory pool for pinned memory.
cupy.cuda.Memory Memory allocation on a CUDA device.
cupy.cuda.PinnedMemory Pinned memory allocation on host.
cupy.cuda.MemoryPointer Pointer to a point on a device memory.
cupy.cuda.PinnedMemoryPointer Pointer of a pinned memory.
cupy.cuda.alloc Calls the current allocator.
cupy.cuda.alloc_pinned_memory Calls the current allocator.
cupy.cuda.set_allocator Sets the current allocator for GPU memory.
cupy.cuda.set_pinned_memory_allocator Sets the current allocator for the pinned memory.
cupy.cuda.MemoryPool Memory pool for all GPU devices on the host.
cupy.cuda.PinnedMemoryPool Memory pool for pinned memory on the host.

Memory hook

cupy.cuda.MemoryHook Base class of hooks for Memory allocations.
cupy.cuda.memory_hooks.DebugPrintHook Memory hook that prints debug information.
cupy.cuda.memory_hooks.LineProfileHook Code line CuPy memory profiler.

Streams and events

cupy.cuda.Stream CUDA stream.
cupy.cuda.get_current_stream Gets current CUDA stream.
cupy.cuda.Event CUDA event, a synchronization point of CUDA streams.
cupy.cuda.get_elapsed_time Gets the elapsed time between two events.


cupy.cuda.profile Enable CUDA profiling during with statement.
cupy.cuda.profiler.initialize Initialize the CUDA profiler.
cupy.cuda.profiler.start Enable profiling.
cupy.cuda.profiler.stop Disable profiling.
cupy.cuda.nvtx.Mark Marks an instantaneous event (marker) in the application.
cupy.cuda.nvtx.MarkC Marks an instantaneous event (marker) in the application.
cupy.cuda.nvtx.RangePush Starts a nested range.
cupy.cuda.nvtx.RangePushC Starts a nested range.
cupy.cuda.nvtx.RangePop Ends a nested range.