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

## Interface GPUMemoryAllocator

- All Known Implementing Classes:
    CudaMemoryAllocator, UnifiedMemoryAllocator

      public interface GPUMemoryAllocator

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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 size
    `void` | `free(jcuda.Pointer devPtr)` Frees memory on the device
    `long` | `getAvailableMemory()` Gets the available memory on GPU that SystemDS can use.

- - ### Method Detail

    - #### allocate

          void allocate(jcuda.Pointer devPtr,
                        long size)
                 throws jcuda.CudaException

      Allocate memory on the device.
      Parameters:
        `devPtr` - Pointer to allocated device memory
        `size` - size in bytes
      Throws:
        `jcuda.CudaException` - if unable to allocate

    - #### free

          void free(jcuda.Pointer devPtr)
             throws jcuda.CudaException

      Frees memory on the device
      Parameters:
        `devPtr` - Device pointer to memory to free
      Throws:
        `jcuda.CudaException` - if error occurs

    - #### canAllocate

          boolean canAllocate(long size)

      Check if there is enough memory to allocate a pointer of given size
      Parameters:
        `size` - size in bytes
      Returns:
        true if there is enough available memory to allocate a pointer of the given size

    - #### getAvailableMemory

          long getAvailableMemory()

      Gets the available memory on GPU that SystemDS can use.
      Returns:
        the available memory in bytes

Copyright © 2020 The Apache Software Foundation. All rights reserved.