Low-Level CUDA Support

Device management

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

Memory management

cupy.cuda.Memory Memory allocation on a CUDA device.
cupy.cuda.MemoryPointer Pointer to a point on a device memory.
cupy.cuda.alloc Calls the current allocator.
cupy.cuda.set_allocator Sets the current allocator.
cupy.cuda.MemoryPool Memory pool for all devices on the machine.

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.Event CUDA event, a synchronization point of CUDA streams.
cupy.cuda.get_elapsed_time Gets the elapsed time between two events.

Profiler

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.