1CLINFO(1) General Commands Manual CLINFO(1)
2
3
4
6 clinfo - show OpenCL platforms and devices
7
8
10 clinfo [options ...]
11
12
14 clinfo prints all available information about all OpenCL platforms
15 available on the system and the devices they expose.
16
17
19 clinfo accepts the following options:
20
21 -a, --all-props
22 try to retrieve all properties, even those not officially supported
23 (e.g. because they require specific extensions), but only show them
24 if the property could be retrieved successfully; see also the LIMITA‐
25 TIONS section below; note that even though this may reveal hidden
26 properties, there is no guarantee that the returned values are mean‐
27 ingful, nor that the corresponding feature is actually available at
28 all;
29
30 -A, --always-all-props
31 like -a, but also show errors;
32
33 --human
34 produce human-friendly output; this is the default (except as noted
35 below);
36
37 --raw
38 produce machine-friendly output; this is the default if clinfo is
39 invoked with a name that contains the string “raw”;
40
41 --offline
42 shows also offline devices for platforms that expose this feature;
43
44 -l, --list
45 list platforms and devices by name, with no (other) properties;
46
47 -h, -?
48 show usage;
49
50 --version, -v
51 show program version.
52
53
55 OpenCL 1.1, OpenCL 1.2, OpenCL 2.0, OpenCL 2.1, OpenCL 2.2.
56
57
59 Supported OpenCL extensions:
60
61 cl_khr_fp16, cl_khr_fp64, cl_amd_fp64, cl_APPLE_fp64_basic_ops
62 for information about support for half-precision and double-precision
63 floating-point data types;
64
65 cl_khr_image2d_from_buffer
66 for information about the base address and pitch alignment require‐
67 ments of buffers to be used as base for 2D images;
68
69 cl_khr_il_program
70 for information about the supported IL (Intermediate Language) repre‐
71 sentations;
72
73 cl_khr_spir
74 for information about the supported SPIR (Standard Portable Interme‐
75 diate Representation) versions;
76
77 cl_khr_icd
78 for the suffix of vendor extensions functions;
79
80 cl_khr_subgroup_named_barrier
81 for the maximum number of named sub-group barriers;
82
83 cl_khr_terminate_context
84 for the terminate capabilities for the device;
85
86 cl_ext_device_fission
87 for device fission support in OpenCL 1.1 devices;
88
89 cl_ext_atomic_counters_32
90 cl_ext_atomic_counters_64
91 for the atomic counter extension;
92
93 cl_amd_device_attribute_query
94 for AMD-specific device attributes;
95
96 cl_amd_object_metadata
97 to show the maximum number of keys supported by the platform;
98
99 cl_amd_offline_devices
100 to show offline devices exposed by the platform, if requested (see
101 --offline option);
102
103 cl_amd_copy_buffer_p2p
104 to show the number and IDs of available P2P devices;
105
106 cl_amd_svm
107 cl_arm_shared_virtual_memory
108 for Shared Virtual Memory (SVM) capabilities in OpenCL 1.2 devices;
109
110 cl_nv_device_attribute_query
111 for NVIDIA-specific device attributes;
112
113 cl_intel_exec_by_local_thread
114 for the Intel extension allowing CPU devices to run kernels as part
115 of the current host thread;
116
117 cl_intel_advanced_motion_estimation
118 for the version of the Intel Motion Estimation accelerator version;
119
120 cl_intel_device_side_avc_motion_estimation
121 for the version and supported features of Intel's device-side AVC
122 Motion;
123
124 cl_intel_planar_yuv
125 for the maximum dimensions of planar YUV images;
126
127 cl_intel_simultaneous_sharing
128 for simultaneous CL/GL/DirectX context sharing (only partial sup‐
129 port);
130
131 cl_intel_required_subgroup_size
132 to enumerate allowed sub-group sizes;
133
134 cl_altera_device_temperature
135 for the Altera extension to query the core temperature of the device;
136
137 cl_qcom_ext_host_ptr
138 for the QUALCOMM extension to query page size and required padding in
139 external memory allocation.
140
141
143 Some information is duplicated when available from multiple sources.
144 Examples:
145
146 · supported device partition types and domains as obtained using the
147 cl_ext_device_fission extension typically match the ones obtained
148 using the core OpenCL 1.2 device partition feature;
149
150 · the preferred work-group size multiple matches the NVIDIA warp size
151 (on NVIDIA devices) or the AMD wavefront width (on AMD devices).
152
153
154 Some floating-point configuration flags may only be meaningful for spe‐
155 cific precisions and/or specific OpenCL versions. For example,
156 CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT is only relevant for single preci‐
157 sion in OpenCL 1.2 devices.
158
159
160 The implementation-defined behavior for NULL platform or context prop‐
161 erties is tested for the following API calls:
162
163 clGetPlatformInfo()
164 by trying to show the platform name;
165
166 clGetDeviceIDs()
167 by trying to enumerate devices; the corresponding platform (if any)
168 is then detected by querying the device platform of the first device;
169
170 clCreateteContext()
171 by trying to create a context from a device from the previous list
172 (if any), and a context from a device from a different platform;
173
174 clCreateteContextFromType()
175 by trying to create contexts for each device type (except DEFAULT).
176
177
179 Support for OpenCL 2.x properties is not fully tested.
180
181
182 Support for cl_khr_subgroup_named_barrier is experimental due to miss‐
183 ing definitions in the official OpenCL headers.
184
185
186 Raw (machine-parsable) output is considered experimental, the output
187 format might still undergo changes.
188
189
190 The properties of the ICD loader will also be queried if the clGetICD‐
191 LoaderInfoOCLICD extension function is found.
192
193
194 Support for the properties exposed by cl_amd_copy_buffer_p2p is experi‐
195 mental.
196
197
198 Support for some (documented and undocumented) properties exposed by
199 cl_amd_device_attribute_query is experimental (see also LIMITATIONS).
200
201
202 Support for the interop lists exposed by cl_intel_simultaneous_sharing
203 is experimental.
204
205
206 The highest OpenCL version supported by the ICD loader is detected with
207 some trivial heuristics (symbols found); a notice is output if this is
208 lower than the highest platform OpenCL version, or if the detected ver‐
209 sion doesn't match the one declared by the ICD loader itself.
210
211
213 OpenCL provides no explicit mean to detect the supported version of any
214 extension exposed by a device, which makes it impossible to determine a
215 priori if it will be possible to successfully query a device about a
216 specific property. Additionally, the actual size and meaning of some
217 properties are not officially declared anywhere.
218
219
220 Most notably, this affects extensions such as
221 cl_amd_device_attribute_query and cl_nv_device_attribute_query.
222 Heuristics based on standard version support are partially used in the
223 code to determine which version may be supported.
224
225
226 Properties which are known to be affected by these limitations include:
227
228
229 CL_DEVICE_GLOBAL_FREE_MEMORY_AMD
230 documented in v3 of the cl_amd_device_attribute_query extension spec‐
231 ification as being the global free memory in KBytes, without any
232 explanation given on why there are two values;
233
234 CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD
235 documented in v3 of the cl_amd_device_attribute_query extension spec‐
236 ification, but not reported by drivers supporting other v3 proper‐
237 ties. This has now been enabled for drivers assumed to support v4 of
238 the same extension;
239
240 CL_DEVICE_TERMINATE_CAPABILITY_KHR
241 exposed by the cl_khr_terminate_context has changed value between
242 OpenCL 1.x and 2.x, and it's allegedly a bitfield, whose values are
243 however not defined anywhere.
244
245
247 Please report any issues on the project tracker on GitHub
248 ⟨http://github.com/Oblomov/clinfo⟩.
249
250
251
252clinfo 2.2.18.04.06 2018-04-06 CLINFO(1)