Table of Contents

Namespace NVMathNet.Memory

Classes

CachingMemoryManager

A memory manager that keeps freed blocks and hands them out again, avoiding repeated cudaMalloc/cudaFree calls (which are slow and synchronise the device). Requests up to 1 GiB are rounded up to a power of two (minimum 512 bytes) so blocks are interchangeable; larger requests are cached by exact size. Blocks are cached per CUDA device: a block is only handed out again to a caller whose current device is the one it was allocated on.

CudaMallocMemoryManager

The default manager: plain cudaMalloc / cudaFree.

DeviceMemory

Process-wide settings for device memory allocation.

Interfaces

IDeviceMemoryManager

Allocates and frees GPU device memory for NVMathNet.DeviceBuffer`1. Implement this to plug in a pooling or externally managed allocator. Implementations must be thread-safe.