/** * This provides a mechanism for the application to query the maximum work-group size that can be used to execute a kernel on a specific device given by device. <br> * The OpenCL implementation uses the resource requirements of the kernel (register usage etc.) to determine what this work- group size should be.<br> * See <a href="http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/clGetKernelWorkGroupInfo.html">CL_KERNEL_WORK_GROUP_SIZE</a> */ public Map<CLDevice, Long> getWorkGroupSize() { CLDevice[] devices = program.getDevices(); Map<CLDevice, Long> ret = new HashMap<CLDevice, Long>(devices.length); for (CLDevice device : devices) ret.put(device, getKernelInfos().getIntOrLong(device.getEntity(), CL_KERNEL_WORK_GROUP_SIZE)); return ret; }
/** * A 64-bit value that describes the current device time counter in nanoseconds when the command identified by event starts execution on the device. */ @InfoName("CL_CL_PROFILING_COMMAND_START") public long getProfilingCommandStart() { return profilingInfos.getIntOrLong(getEntity(), CL_PROFILING_COMMAND_START); }
/** * Max size of memory object allocation in bytes. The minimum value is max (1/4th of CL_DEVICE_GLOBAL_MEM_SIZE , 128*1024*1024) */ @InfoName("CL_DEVICE_MAX_MEM_ALLOC_SIZE") public long getMaxMemAllocSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_MAX_MEM_ALLOC_SIZE); }
/** * Size of global memory cache in bytes. */ @InfoName("CL_DEVICE_GLOBAL_MEM_CACHE_SIZE") public long getGlobalMemCacheSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_GLOBAL_MEM_CACHE_SIZE); }
/** TODO */ @InfoName("CL_DEVICE_REFERENCE_COUNT") public long getReferenceCount() { return infos.getIntOrLong(getEntity(), CL_DEVICE_REFERENCE_COUNT); }
/** * Max height of 3D image in pixels. <br> * The minimum value is 2048 if CL_DEVICE_IMAGE_SUPPORT is CL_TRUE. */ @InfoName("CL_DEVICE_IMAGE3D_MAX_HEIGHT") public long getImage3DMaxHeight() { return infos.getIntOrLong(getEntity(), CL_DEVICE_IMAGE3D_MAX_HEIGHT); }
/** * Max depth of 3D image in pixels. <br> * The minimum value is 2048 if CL_DEVICE_IMAGE_SUPPORT is CL_TRUE. */ @InfoName("CL_DEVICE_IMAGE3D_MAX_DEPTH") public long getImage3DMaxDepth() { return infos.getIntOrLong(getEntity(), CL_DEVICE_IMAGE3D_MAX_DEPTH); }
/** TODO */ @InfoName("CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF") public long getNativeVectorWidthHalf() { return infos.getIntOrLong(getEntity(), CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF); }
/** * Return height of the image in pixels */ @InfoName("CL_IMAGE_HEIGHT") public long getHeight() { return infos.getIntOrLong(getEntity(), CL_IMAGE_HEIGHT); }
/** * Max height of 2D image in pixels. <br> * The minimum value is 8192 if CL_DEVICE_IMAGE_SUPPORT is CL_TRUE. */ @InfoName("CL_DEVICE_IMAGE2D_MAX_HEIGHT") public long getImage2DMaxHeight() { return infos.getIntOrLong(getEntity(), CL_DEVICE_IMAGE2D_MAX_HEIGHT); }
/** TODO */ @InfoName("CL_DEVICE_REFERENCE_COUNT") public long getReferenceCount() { return infos.getIntOrLong(getEntity(), CL_DEVICE_REFERENCE_COUNT); }
/** * Maximum number of work-items in a work-group executing a kernel using the data parallel execution model. * (Refer to clEnqueueNDRangeKernel). <br> * The minimum value is 1. */ @InfoName("CL_DEVICE_MAX_WORK_GROUP_SIZE") public long getMaxWorkGroupSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_MAX_WORK_GROUP_SIZE); }
/** * Max size of memory object allocation in bytes. The minimum value is max (1/4th of CL_DEVICE_GLOBAL_MEM_SIZE , 128*1024*1024) */ @InfoName("CL_DEVICE_MAX_MEM_ALLOC_SIZE") public long getMaxMemAllocSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_MAX_MEM_ALLOC_SIZE); }
/** * Max width of 2D image in pixels. <br> * The minimum value is 8192 if CL_DEVICE_IMAGE_SUPPORT is CL_TRUE. */ @InfoName("CL_DEVICE_IMAGE2D_MAX_WIDTH") public long getImage2DMaxWidth() { return infos.getIntOrLong(getEntity(), CL_DEVICE_IMAGE2D_MAX_WIDTH); }
/** * Size of global device memory in bytes. */ @InfoName("CL_DEVICE_GLOBAL_MEM_SIZE") public long getGlobalMemSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_GLOBAL_MEM_SIZE); }
/** * Size of local memory arena in bytes. <br> * The minimum value is 16 KB. */ @InfoName("CL_DEVICE_LOCAL_MEM_SIZE") public long getLocalMemSize() { return infos.getIntOrLong(getEntity(), CL_DEVICE_LOCAL_MEM_SIZE); }
/** * Describes the execution capabilities of the device.<br> * The mandated minimum capability is: Kernel. */ @InfoName("CL_DEVICE_EXECUTION_CAPABILITIES") public EnumSet<ExecutionCapability> getExecutionCapabilities() { return ExecutionCapability.getEnumSet(infos.getIntOrLong(getEntity(), CL_DEVICE_EXECUTION_CAPABILITIES)); }
/** TODO */ @InfoName("CL_DEVICE_DOUBLE_FP_CONFIG") public EnumSet<FpConfig> getDoubleFpConfig() { return isDoubleSupported() ? FpConfig.getEnumSet(infos.getIntOrLong(getEntity(), CL_DEVICE_DOUBLE_FP_CONFIG)) : EnumSet.noneOf(FpConfig.class); }
/** * Describes the command-queue properties supported by the device.<br> * These properties are described in table 5.1.<br> * The mandated minimum capability is: ProfilingEnable. */ @InfoName("CL_DEVICE_QUEUE_PROPERTIES") public EnumSet<QueueProperties> getQueueProperties() { return QueueProperties.getEnumSet(infos.getIntOrLong(getEntity(), CL_DEVICE_QUEUE_PROPERTIES)); }
/** * Describes the execution capabilities of the device.<br> * The mandated minimum capability is: Kernel. */ @InfoName("CL_DEVICE_EXECUTION_CAPABILITIES") public EnumSet<ExecutionCapability> getExecutionCapabilities() { return ExecutionCapability.getEnumSet(infos.getIntOrLong(getEntity(), CL_DEVICE_EXECUTION_CAPABILITIES)); }