Class UnifiedMemoryAllocator
- java.lang.Object
-
- org.apache.sysds.runtime.instructions.gpu.context.UnifiedMemoryAllocator
-
- All Implemented Interfaces:
GPUMemoryAllocator
public class UnifiedMemoryAllocator extends Object implements GPUMemoryAllocator
-
-
Constructor Summary
Constructors Constructor Description UnifiedMemoryAllocator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
allocate(jcuda.Pointer devPtr, long size)
Allocate memory on the device.boolean
canAllocate(long size)
Check if there is enough memory to allocate a pointer of given sizevoid
free(jcuda.Pointer devPtr)
Frees memory on the devicelong
getAvailableMemory()
Gets the available memory on GPU that SystemDS can use.
-
-
-
Method Detail
-
allocate
public void allocate(jcuda.Pointer devPtr, long size) throws jcuda.CudaException
Allocate memory on the device.- Specified by:
allocate
in interfaceGPUMemoryAllocator
- Parameters:
devPtr
- Pointer to allocated device memorysize
- size in bytes- Throws:
jcuda.CudaException
- if unable to allocate
-
free
public void free(jcuda.Pointer devPtr) throws jcuda.CudaException
Frees memory on the device- Specified by:
free
in interfaceGPUMemoryAllocator
- Parameters:
devPtr
- Device pointer to memory to free- Throws:
jcuda.CudaException
- if error occurs
-
canAllocate
public boolean canAllocate(long size)
Check if there is enough memory to allocate a pointer of given size- Specified by:
canAllocate
in interfaceGPUMemoryAllocator
- Parameters:
size
- size in bytes- Returns:
- true if there is enough available memory to allocate a pointer of the given size
-
getAvailableMemory
public long getAvailableMemory()
Gets the available memory on GPU that SystemDS can use.- Specified by:
getAvailableMemory
in interfaceGPUMemoryAllocator
- Returns:
- the available memory in bytes
-
-