Package org.apache.sysds.runtime.instructions.gpu.context

## Class GPULazyCudaFreeMemoryManager

- java.lang.Object
- - org.apache.sysds.runtime.instructions.gpu.context.GPULazyCudaFreeMemoryManager

    public class GPULazyCudaFreeMemoryManager
    extends Object

### Constructor Summary

Constructors
`GPULazyCudaFreeMemoryManager​(GPUMemoryManager gpuManager)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add​(long size, jcuda.Pointer toFree)` Add a pointer to the rmvar-ed list
`void` `clearAll()`
`Set<jcuda.Pointer>` `getAllPointers()`
`int` `getNumPointers()` Get total number of rmvared pointers
`jcuda.Pointer` `getRmvarPointer​(String opcode, long size)` Get any pointer of the given size from rmvar-ed pointers (applicable if eager cudaFree is set to false)
`jcuda.Pointer` `getRmvarPointerMinSize​(String opcode, long minSize)`
`long` `getTotalMemoryAllocated()` Return the total memory in bytes used by this memory manager
`void` `removeIfPresent​(long size, jcuda.Pointer ptr)` Remove a specific pointer if present in the internal hashmap

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### GPULazyCudaFreeMemoryManager

    public GPULazyCudaFreeMemoryManager​(GPUMemoryManager gpuManager)

### Method Detail

#### getRmvarPointer

    public jcuda.Pointer getRmvarPointer​(String opcode,
                                         long size)

Get any pointer of the given size from rmvar-ed pointers (applicable if eager cudaFree is set to false)

Parameters:
  `opcode` - opcode
  `size` - size in bytes
Returns:
  pointer

#### getAllPointers

    public Set<jcuda.Pointer> getAllPointers()

#### clearAll

    public void clearAll()

#### getRmvarPointerMinSize

    public jcuda.Pointer getRmvarPointerMinSize​(String opcode,
                                                long minSize)
                                         throws DMLRuntimeException

Throws:
  `DMLRuntimeException`

#### getTotalMemoryAllocated

    public long getTotalMemoryAllocated()

Return the total memory in bytes used by this memory manager

Returns:
  number of bytes

#### getNumPointers

    public int getNumPointers()

Get total number of rmvared pointers

Returns:
  number of pointers

#### add

    public void add​(long size,
                    jcuda.Pointer toFree)

Add a pointer to the rmvar-ed list

Parameters:
  `size` - size of the pointer
  `toFree` - pointer

#### removeIfPresent

    public void removeIfPresent​(long size,
                                jcuda.Pointer ptr)

Remove a specific pointer if present in the internal hashmap

Parameters:
  `size` - size in bytes
  `ptr` - pointer to be removed