Class KHRSubgroups


  • public class KHRSubgroups
    extends java.lang.Object
    Native bindings to the khr_subgroups extension.

    This extension adds support for implementation-controlled groups of work items, known as subgroups. Subgroups behave similarly to work groups and have their own sets of built-ins and synchronization primitives. Subgroups within a work group are independent, may make forward progress with respect to each other, and may map to optimized hardware structures where that makes sense.

    Subgroups were promoted to a core feature in OpenCL 2.1, however note that:

    • The subgroup OpenCL C built-in functions described by this extension must still be accessed as an OpenCL C extension in OpenCL 2.1.
    • Subgroup independent forward progress is an optional device property in OpenCL 2.1, see DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS.
    • Method Detail

      • nclGetKernelSubGroupInfoKHR

        public static int nclGetKernelSubGroupInfoKHR​(long kernel,
                                                      long device,
                                                      int param_name,
                                                      long input_value_size,
                                                      long input_value,
                                                      long param_value_size,
                                                      long param_value,
                                                      long param_value_size_ret)
        Unsafe version of: GetKernelSubGroupInfoKHR
        Parameters:
        input_value_size - specifies the size in bytes of memory pointed to by input_value. This size must be equal to the size of the input type.
        param_value_size - the size in bytes of memory pointed to by param_value. This size must be ≥ size of return type. If param_value is NULL, it is ignored.
      • clGetKernelSubGroupInfoKHR

        public static int clGetKernelSubGroupInfoKHR​(long kernel,
                                                     long device,
                                                     int param_name,
                                                     java.nio.ByteBuffer input_value,
                                                     @Nullable
                                                     java.nio.ByteBuffer param_value,
                                                     @Nullable
                                                     org.lwjgl.PointerBuffer param_value_size_ret)
        
        public static int clGetKernelSubGroupInfoKHR​(long kernel,
                                                     long device,
                                                     int param_name,
                                                     java.nio.ByteBuffer input_value,
                                                     @Nullable
                                                     org.lwjgl.PointerBuffer param_value,
                                                     @Nullable
                                                     org.lwjgl.PointerBuffer param_value_size_ret)
        
        Returns information about a kernel object.
        Parameters:
        kernel - the kernel object being queried
        device - identifies a specific device in the list of devices associated with kernel. The list of devices is the list of devices in the OpenCL context that is associated with kernel. If the list of devices associated with kernel is a single device, device can be a NULL value.
        param_name - specifies the information to query. One of:
        KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHRKERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR
        input_value - a pointer to memory where the appropriate parameterization of the query is passed from. If input_value is NULL it is ignored.
        param_value - a pointer to memory where the appropriate result being queried is returned. If param_value is NULL, it is ignored.
        param_value_size_ret - the actual size in bytes of data being queried by param_value. If NULL, it is ignored.