|
Mila 0.13.48
Deep Neural Network Library
|
CUDA device memory resource for GPU-accessible memory allocation. More...


Public Member Functions | |
| CudaDeviceMemoryResource (int device_id) | |
| Constructs CUDA managed memory resource with device ID. | |
| Public Member Functions inherited from Mila::Dnn::Compute::MemoryResource | |
| virtual | ~MemoryResource ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
Static Public Attributes | |
| static constexpr DeviceType | device_type = DeviceType::Cuda |
| Device type constant for CUDA memory resources. | |
| static constexpr bool | is_device_accessible = DeviceAccessible::is_device_accessible |
| Indicates CUDA device memory is accessible from device code. | |
| static constexpr bool | is_host_accessible = false |
| Indicates CUDA device memory is not accessible from host code. | |
| Static Public Attributes inherited from Mila::Dnn::Compute::MemoryResource | |
| static constexpr bool | is_device_accessible = false |
| Checks if the memory is accessible from device code. | |
| static constexpr bool | is_host_accessible = true |
| Checks if the memory is accessible from host code. | |
Protected Member Functions | |
| void * | do_allocate (std::size_t bytes, std::size_t alignment) override |
| Allocates memory on the CUDA device. | |
| void | do_deallocate (void *ptr, std::size_t, std::size_t) override |
| Deallocates CUDA device memory. | |
| bool | do_is_equal (const std::pmr::memory_resource &other) const noexcept override |
| Compares CUDA memory resources for equality. | |
Private Attributes | |
| int | device_id_ |
CUDA device memory resource for GPU-accessible memory allocation.
Provides optimized CUDA device memory allocation with proper device binding through device context integration. Focuses purely on memory allocation responsibilities without tensor-specific operations or type conversions.
|
inlineexplicit |
Constructs CUDA managed memory resource with device ID.
| device_id | CUDA device ID (0, 1, 2, etc.) |
| std::invalid_argument | If device_id is invalid |

|
inlineoverrideprotectedvirtual |
Allocates memory on the CUDA device.
Ensures allocation occurs on the correct device by activating the device context before calling cudaMalloc. Provides detailed error information on allocation failure.
| bytes | Number of bytes to allocate |
| alignment | Memory alignment requirement (ignored by CUDA) |
| CudaBadAlloc | If allocation fails |
Implements Mila::Dnn::Compute::MemoryResource.

|
inlineoverrideprotectedvirtual |
Deallocates CUDA device memory.
Ensures deallocation occurs on the correct device and provides detailed error information if deallocation fails.
| ptr | Pointer to device memory to deallocate |
| bytes | Size of memory block (unused, kept for interface compatibility) |
| alignment | Alignment used during allocation (unused, kept for interface compatibility) |
Implements Mila::Dnn::Compute::MemoryResource.

|
inlineoverrideprotectedvirtualnoexcept |
Compares CUDA memory resources for equality.
CUDA memory resources are equal if they are both CudaDeviceMemoryResource instances. Device binding is handled at the tensor level through device context management.
| other | The other memory resource to compare with |
Implements Mila::Dnn::Compute::MemoryResource.

|
private |
|
staticconstexpr |
Device type constant for CUDA memory resources.
|
staticconstexpr |
Indicates CUDA device memory is accessible from device code.
|
staticconstexpr |
Indicates CUDA device memory is not accessible from host code.