Class CudaMemoryAllocator

java.lang.Object
org.apache.sysds.runtime.instructions.gpu.context.CudaMemoryAllocator
All Implemented Interfaces:
GPUMemoryAllocator

public class CudaMemoryAllocator extends Object implements GPUMemoryAllocator
  • Constructor Details

    • CudaMemoryAllocator

      public CudaMemoryAllocator()
  • Method Details

    • allocate

      public void allocate(jcuda.Pointer devPtr, long size)
      Allocate memory on the device.
      Specified by:
      allocate in interface GPUMemoryAllocator
      Parameters:
      devPtr - Pointer to allocated device memory
      size - 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 interface GPUMemoryAllocator
      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 interface GPUMemoryAllocator
      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 interface GPUMemoryAllocator
      Returns:
      the available memory in bytes
    • resetUnusableFreeMemory

      public static void resetUnusableFreeMemory()