Class EXTDeviceFission

java.lang.Object
org.lwjgl.opencl.EXTDeviceFission

public class EXTDeviceFission extends Object
Native bindings to the ext_device_fission extension.

This extension provides an interface for sub-dividing an OpenCL device into multiple sub-devices. There are a number of cases in which a typical user would like to subdivide a device:

  1. To reserve part of the device for use for high priority / latency-sensitive tasks
  2. To more directly control the assignment of work to individual compute units
  3. To subdivide compute devices along some shared hardware feature like a cache

Typically these are areas where some level of additional control is required to get optimal performance beyond that provided by standard OpenCL 1.1 APIs. Proper use of this interface assumes some detailed knowledge of the devices in question.

  • Field Details

    • CL_DEVICE_PARTITION_EQUALLY_EXT

      public static final int CL_DEVICE_PARTITION_EQUALLY_EXT
      Accepted as a property name in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_DEVICE_PARTITION_BY_COUNTS_EXT

      public static final int CL_DEVICE_PARTITION_BY_COUNTS_EXT
      Accepted as a property name in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_DEVICE_PARTITION_BY_NAMES_EXT

      public static final int CL_DEVICE_PARTITION_BY_NAMES_EXT
      Accepted as a property name in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT

      public static final int CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT
      Accepted as a property name in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_L1_CACHE_EXT

      public static final int CL_AFFINITY_DOMAIN_L1_CACHE_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_L2_CACHE_EXT

      public static final int CL_AFFINITY_DOMAIN_L2_CACHE_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_L3_CACHE_EXT

      public static final int CL_AFFINITY_DOMAIN_L3_CACHE_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_L4_CACHE_EXT

      public static final int CL_AFFINITY_DOMAIN_L4_CACHE_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_NUMA_EXT

      public static final int CL_AFFINITY_DOMAIN_NUMA_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT

      public static final int CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT
      Accepted as a property name, when accompanying the CL_DEVICE_PARITION_BY_AFFINITY_DOMAIN_EXT property, in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_DEVICE_PARENT_DEVICE_EXT

      public static final int CL_DEVICE_PARENT_DEVICE_EXT
      Accepted as a property being queried in the param_name argument of clGetDeviceInfo.
      See Also:
    • CL_DEVICE_PARITION_TYPES_EXT

      public static final int CL_DEVICE_PARITION_TYPES_EXT
      Accepted as a property being queried in the param_name argument of clGetDeviceInfo.
      See Also:
    • CL_DEVICE_AFFINITY_DOMAINS_EXT

      public static final int CL_DEVICE_AFFINITY_DOMAINS_EXT
      Accepted as a property being queried in the param_name argument of clGetDeviceInfo.
      See Also:
    • CL_DEVICE_REFERENCE_COUNT_EXT

      public static final int CL_DEVICE_REFERENCE_COUNT_EXT
      Accepted as a property being queried in the param_name argument of clGetDeviceInfo.
      See Also:
    • CL_DEVICE_PARTITION_STYLE_EXT

      public static final int CL_DEVICE_PARTITION_STYLE_EXT
      Accepted as a property being queried in the param_name argument of clGetDeviceInfo.
      See Also:
    • CL_PROPERTIES_LIST_END_EXT

      public static final int CL_PROPERTIES_LIST_END_EXT
      Accepted as the property list terminator in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_PARTITION_BY_COUNTS_LIST_END_EXT

      public static final int CL_PARTITION_BY_COUNTS_LIST_END_EXT
      Accepted as the partition counts list terminator in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_PARTITION_BY_NAMES_LIST_END_EXT

      public static final int CL_PARTITION_BY_NAMES_LIST_END_EXT
      Accepted as the partition names list terminator in the properties parameter of clCreateSubDeviceEXT.
      See Also:
    • CL_DEVICE_PARTITION_FAILED_EXT

      public static final int CL_DEVICE_PARTITION_FAILED_EXT
      Returned by clCreateSubDevicesEXT when the indicated partition scheme is supported by the implementation, but the implementation can not further partition the device in this way.
      See Also:
    • CL_INVALID_PARTITION_COUNT_EXT

      public static final int CL_INVALID_PARTITION_COUNT_EXT
      Returned by clCreateSubDevicesEXT when the total number of compute units requested exceeds CL_DEVICE_MAX_COMPUTE_UNITS, or the number of compute units for any one sub-device is less than 1.
      See Also:
    • CL_INVALID_PARTITION_NAME_EXT

      public static final int CL_INVALID_PARTITION_NAME_EXT
      Returned by clCreateSubDevicesEXT when a compute unit name appearing in a name list following CL_DEVICE_PARTITION_BY_NAMES_EXT is not in range.
      See Also:
  • Method Details

    • clReleaseDeviceEXT

      public static int clReleaseDeviceEXT(long device)
    • clRetainDeviceEXT

      public static int clRetainDeviceEXT(long device)
    • nclCreateSubDevicesEXT

      public static int nclCreateSubDevicesEXT(long in_device, long properties, int num_entries, long out_devices, long num_devices)
    • clCreateSubDevicesEXT

      public static int clCreateSubDevicesEXT(long in_device, LongBuffer properties, @Nullable PointerBuffer out_devices, @Nullable IntBuffer num_devices)
    • clCreateSubDevicesEXT

      public static int clCreateSubDevicesEXT(long in_device, long[] properties, @Nullable PointerBuffer out_devices, @Nullable int[] num_devices)
      Array version of: CreateSubDevicesEXT