blob: 12206d260e218658a053975f153ad73053272e6e [file] [log] [blame]
Name Strings
cl_intel_device_partition_by_names
Contributors
Yariv Aridor (Intel)
Evgeny Fiksman (Intel)
Doron Singer(Intel)
Contact
Yariv.Aridor(at)Intel.Com
IP Status
N/A
Version
Version 2, August 15, 2013
Number
OpenCL Extension #20
Status
Complete.
Extension Type
OpenCL device extension
Dependencies
OpenCL 1.2 is required
Overview
This extension allows the user to create non-overlapping sub-devices containing specific
compute units. CL_DEVICE_PARTITION_BY_NAMES_INTEL is a
cl_device_partition_property that is followed by a list of compute unit
names, teminated by CL_PARTITION_BY_NAMES_LIST_END_INTEL Compute unit
names are integers that count up from zero to the number of compute
units minus one. Only one sub-device may be created at a time with this
selector. An individual compute unit name may not appear more than once
in the sub-device description. A sub-device created with
CL_DEVICE_PARTITION_BY_NAMES_INTEL cannot be further sub-divided. A
sub-device created with another partitioning mode cannot be further
sub-divided by CL_DEVICE_PARTITION_BY_NAMES_INTEL.
Sub-devices created by different calls to clCreatesubDevices using CL_DEVICE_PARTITION_BY_NAMES_INTEL
cannot overlap. An attempt to create a command queue on a sub-device which overlaps with a sub-device
for which a command queue already exists will fail with CL_OUT_OF_RESOURCES.
Example: To create a three compute unit sub-device using compute units,
{ 0, 1, 3 }, pass:
{ CL_DEVICE_PARTITION_BY NAMES_INTEL, 0, 1, 3, CL_PARTITION_BY_NAMES_LIST_END_INTEL, CL_PROPERTIES_LIST_END }
The meaning of these numbers are, in order:
0 the name of the first compute unit in the sub-device
1 the name of the second compute unit in the sub-device
3 the name of the third compute unit in the sub-device
CL_PROPERTIES_LIST_END list terminator for the list of properties
Header File
cl_ext.h
New Procedures and Functions
None
New Tokens
CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052
CL_PARTITION_BY_NAMES_LIST_END_INTEL -1
Additions to Chapter NNN / Appendix AAA of the OpenCL <version> Specification
Add CL_DEVICE_PARTITION_BY_NAMES_INTEL to table 4.4 in chapter 4.3
(Partitioning a device), with the explanation in the overview.
Interactions with other extensions
None
Issues
N/A
Sample Code
cl_device_id subdevice_id;
cl_uint num_entries = 1;
cl_uint num_devices = 1;
cl_device_partition_property properties[] = {CL_DEVICE_PARTITION_BY_NAMES_INTEL, 0, CL_PARTITION_BY_NAMES_LIST_END_INTEL, 0};
err = clCreateSubDevices(device, properties, num_entries, &subdevice_id, &num_devices);
Conformance Tests
N/A
Revision History
Revision 1, March 25, 2012. Yariv Aridor. First revision.
Revision 2, August 15, 2013. Doron Singer. Expand on the overlap restriction.