Class ExecutionConfig


  • public class ExecutionConfig
    extends Object
    Java Wrapper to specify CUDA execution configuration for launching custom kernels
    • Field Detail

      • gridDimX

        public int gridDimX
      • gridDimY

        public int gridDimY
      • gridDimZ

        public int gridDimZ
      • blockDimX

        public int blockDimX
      • blockDimY

        public int blockDimY
      • blockDimZ

        public int blockDimZ
      • sharedMemBytes

        public int sharedMemBytes
      • stream

        public jcuda.driver.CUstream stream
    • Constructor Detail

      • ExecutionConfig

        public ExecutionConfig​(int gridDimX,
                               int blockDimX,
                               int sharedMemBytes)
        Convenience constructor for setting the number of blocks, number of threads and the shared memory size
        Parameters:
        gridDimX - Number of blocks on the horizontal axis of the grid (for CUDA Kernel)
        blockDimX - Number of threads on the horizontal axis of a block (for CUDA Kernel)
        sharedMemBytes - Amount of Shared memory (for CUDA Kernel)
      • ExecutionConfig

        public ExecutionConfig​(int gridDimX,
                               int blockDimX)
        Convenience constructor for setting the number of blocks, number of threads and the shared memory size
        Parameters:
        gridDimX - Number of blocks on the horizontal axis of the grid (for CUDA Kernel)
        blockDimX - Number of threads on the horizontal axis of a block (for CUDA Kernel)
      • ExecutionConfig

        public ExecutionConfig​(int gridDimX,
                               int gridDimY,
                               int blockDimX,
                               int blockDimY)
        Convenience constructor for setting the number of blocks, number of threads and the shared memory size
        Parameters:
        gridDimX - Number of blocks on the horizontal axis of the grid (for CUDA Kernel)
        gridDimY - Number of blocks on the vertical axis of the grid (for CUDA Kernel)
        blockDimX - Number of threads on the horizontal axis of a block (for CUDA Kernel)
        blockDimY - Number of threads on the vertical axis of a block (for CUDA Kernel)=
      • ExecutionConfig

        public ExecutionConfig​(int gridDimX,
                               int gridDimY,
                               int blockDimX,
                               int blockDimY,
                               int sharedMemBytes)
        Convenience constructor for setting the number of blocks, number of threads and the shared memory size
        Parameters:
        gridDimX - Number of blocks on the horizontal axis of the grid (for CUDA Kernel)
        gridDimY - Number of blocks on the vertical axis of the grid (for CUDA Kernel)
        blockDimX - Number of threads on the horizontal axis of a block (for CUDA Kernel)
        blockDimY - Number of threads on the vertical axis of a block (for CUDA Kernel)
        sharedMemBytes - Amount of Shared memory (for CUDA Kernel)
    • Method Detail

      • getConfigForSimpleVectorOperations

        public static ExecutionConfig getConfigForSimpleVectorOperations​(int numCells)
        Use this for simple vector operations and use following in the kernel int index = blockIdx.x * blockDim.x + threadIdx.x

        This tries to schedule as minimum grids as possible.

        Parameters:
        numCells - number of cells
        Returns:
        execution configuration
      • getConfigForSimpleMatrixOperations

        public static ExecutionConfig getConfigForSimpleMatrixOperations​(int rlen,
                                                                         int clen)
        Use this for simple vector operations and use following in the kernel int index = blockIdx.x * blockDim.x + threadIdx.x

        Parameters:
        rlen - number of rows
        clen - number of columns
        Returns:
        execution configuration