You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -77,7 +78,7 @@ Additional queries may be added in subsequent versions of the extension:
77
78
78
79
[source]
79
80
----
80
-
/* For GPU devices, version 1.0.0: */
81
+
/* For GPU and CPU devices, version 1.0.0: */
81
82
82
83
#define CL_DEVICE_IP_VERSION_INTEL 0x4250
83
84
#define CL_DEVICE_ID_INTEL 0x4251
@@ -128,27 +129,44 @@ The device queries described in the Device Queries table should return the same
128
129
| `cl_version`
129
130
| The IP version for the device.
130
131
The meaning of this version is implementation-defined, but newer devices should have a higher version than older devices.
132
+
133
+
For Intel GPU devices, please refer to https://github.com/intel/compute-runtime/blob/master/third_party/aot_config_headers/platforms.h[this header file], which describes what this query returns for each device.
134
+
131
135
| {CL_DEVICE_ID_INTEL}
132
136
| `cl_uint`
133
-
| A unique device identifier for the OpenCL device.
137
+
| A unique identifier for the device.
138
+
139
+
For Intel GPU devices, the returned value contains the PCI device ID in the low 16 bits and the upper 16 bits set to zero.
140
+
141
+
For Intel CPU devices, the returned value contains the CPUID model, family, and stepping information, as returned in `EAX` when `CPUID` executes with `EAX` equal to one.
134
142
135
-
If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of the device identifier must contain that PCI device ID, and the remaining bits must be set to zero.
136
-
Otherwise, the choice of what to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multi-core devices).
137
143
| {CL_DEVICE_NUM_SLICES_INTEL}
138
144
| `cl_uint`
139
-
| The number of slices in the device.
145
+
| For Intel GPU devices, returns the number of slices in the device.
140
146
A slice is a collection of sub-slices.
147
+
148
+
For Intel CPU devices, returns the number of NUMA nodes.
149
+
141
150
| {CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL}
142
151
| `cl_uint`
143
-
| The maximum number of sub-slices in one slice.
152
+
| For Intel GPU devices, returns the maximum number of sub-slices in one slice.
144
153
A sub-slice is a collection of execution units (EUs), fixed-function units, and caches.
154
+
155
+
For Intel CPU devices, unconditionally returns one.
156
+
145
157
| {CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL}
146
158
| `cl_uint`
147
-
| The maximum number of execution units (EUs) in one sub-slice.
159
+
| For Intel GPU devices, returns the maximum number of execution units (EUs) in one sub-slice.
148
160
An execution unit is a multi-threaded processor that runs OpenCL kernels.
161
+
162
+
For Intel CPU devices, returns the number of physical cores per NUMA node.
163
+
149
164
| {CL_DEVICE_NUM_THREADS_PER_EU_INTEL}
150
165
| `cl_uint`
151
-
| The maximum number of threads that may be simultaneously resident on one execution unit (EU).
166
+
| For Intel GPU devices, returns the maximum number of threads that may be simultaneously resident on one execution unit (EU).
167
+
168
+
For Intel CPU devices, returns the maximum number of number of threads per core.
169
+
152
170
| {CL_DEVICE_FEATURE_CAPABILITIES_INTEL}
153
171
| {cl_device_feature_capabilities_intel_TYPE}
154
172
| Feature flags describing capabilities supported by the device.
@@ -184,6 +202,7 @@ If we decide to add it back, note that some caches are local to the device, whil
184
202
|========================================
185
203
|Version|Date|Author|Changes
186
204
|1.0.0|2021-08-12|Ben Ashbaugh|*Initial public revision*
205
+
|1.0.0|2026-03-13|Ben Ashbaugh|Added IP version documentation, added CPU information.
0 commit comments