Class CudaMemoryAllocator

    • Constructor Detail

      • CudaMemoryAllocator

        public CudaMemoryAllocator()
    • Method Detail

      • 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()