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
Constructor
Description
`GPULazyCudaFreeMemoryManager(GPUMemoryManager gpuManager)`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### GPULazyCudaFreeMemoryManager

public GPULazyCudaFreeMemoryManager(GPUMemoryManager gpuManager)

## Method Details

### 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