Package com.aparapi

Enum Kernel.EXECUTION_MODE

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<Kernel.EXECUTION_MODE>
    Enclosing class:
    Kernel

    @Deprecated
    public static enum Kernel.EXECUTION_MODE
    extends java.lang.Enum<Kernel.EXECUTION_MODE>
    Deprecated.
    It is no longer recommended that EXECUTION_MODEs are used, as a more sophisticated Device preference mechanism is in place, see KernelManager. Though Kernel.setExecutionMode(EXECUTION_MODE) is still honored, the default EXECUTION_MODE is now AUTO, which indicates that the KernelManager will determine execution behaviours.

    The execution mode ENUM enumerates the possible modes of executing a kernel. One can request a mode of execution using the values below, and query a kernel after it first executes to determine how it executed.

    Aparapi supports 5 execution modes. Default is GPU.

      Enum valueExecution
      GPUExecute using OpenCL on first available GPU device
      ACCExecute using OpenCL on first available Accelerator device
      CPUExecute using OpenCL on first available CPU device
      JTPExecute using a Java Thread Pool (one thread spawned per available core)
      SEQExecute using a single loop. This is useful for debugging but will be less performant than the other modes

    To request that a kernel is executed in a specific mode, call Kernel.setExecutionMode(EXECUTION_MODE) before the kernel first executes.

         int[] values = new int[1024];
         // fill values array
         SquareKernel kernel = new SquareKernel(values);
         kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
         kernel.execute(values.length);
     

    Alternatively, the property com.codegen.executionMode can be set to one of JTP,GPU,ACC,CPU,SEQ when an application is launched.

        java -classpath ....;codegen.jar -Dcom.codegen.executionMode=GPU MyApplication
     

    Generally setting the execution mode is not recommended (it is best to let Aparapi decide automatically) but the option provides a way to compare a kernel's performance under multiple execution modes.

    Version:
    Alpha, 21/09/2010
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      ACC
      Deprecated.
      The value representing execution on an accelerator device (Xeon Phi) via OpenCL.
      AUTO
      Deprecated.
       
      CPU
      Deprecated.
      The value representing execution on a CPU device via OpenCL.
      GPU
      Deprecated.
      The value representing execution on a GPU device via OpenCL.
      JTP
      Deprecated.
      The value representing execution on a Java Thread Pool.
      NONE
      Deprecated.
      A dummy value to indicate an unknown state.
      SEQ
      Deprecated.
      The value representing execution sequentially in a single loop.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private EXECUTION_MODE()
      Deprecated.
       
    • Enum Constant Detail

      • NONE

        public static final Kernel.EXECUTION_MODE NONE
        Deprecated.
        A dummy value to indicate an unknown state.
      • GPU

        public static final Kernel.EXECUTION_MODE GPU
        Deprecated.
        The value representing execution on a GPU device via OpenCL.
      • CPU

        public static final Kernel.EXECUTION_MODE CPU
        Deprecated.
        The value representing execution on a CPU device via OpenCL.

        Note not all OpenCL implementations support OpenCL compute on the CPU.

      • JTP

        public static final Kernel.EXECUTION_MODE JTP
        Deprecated.
        The value representing execution on a Java Thread Pool.

        By default one Java thread is started for each available core and each core will execute globalSize/cores work items. This creates a total of globalSize%cores threads to complete the work. Choose suitable values for globalSize to minimize the number of threads that are spawned.

      • SEQ

        public static final Kernel.EXECUTION_MODE SEQ
        Deprecated.
        The value representing execution sequentially in a single loop.

        This is meant to be used for debugging a kernel.

      • ACC

        public static final Kernel.EXECUTION_MODE ACC
        Deprecated.
        The value representing execution on an accelerator device (Xeon Phi) via OpenCL.
    • Constructor Detail

      • EXECUTION_MODE

        private EXECUTION_MODE()
        Deprecated.
    • Method Detail

      • values

        public static Kernel.EXECUTION_MODE[] values()
        Deprecated.
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (Kernel.EXECUTION_MODE c : Kernel.EXECUTION_MODE.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static Kernel.EXECUTION_MODE valueOf​(java.lang.String name)
        Deprecated.
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • getExecutionModeFromString

        static java.util.LinkedHashSet<Kernel.EXECUTION_MODE> getExecutionModeFromString​(java.lang.String executionMode)
        Deprecated.
      • anyOpenCL

        static boolean anyOpenCL​(java.util.LinkedHashSet<Kernel.EXECUTION_MODE> _executionModes)
        Deprecated.
      • isOpenCL

        public boolean isOpenCL()
        Deprecated.