1CLINFO(1)                   General Commands Manual                  CLINFO(1)
2
3
4

NAME

6       clinfo - show OpenCL platforms and devices
7
8

SYNOPSIS

10       clinfo [options ...]
11
12

DESCRIPTION

14       clinfo  prints  all  available  information  about all OpenCL platforms
15       available on the system and the devices they expose.
16
17

OPTIONS

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

CONFORMING TO

55       OpenCL 1.1, OpenCL 1.2, OpenCL 2.0, OpenCL 2.1, OpenCL 2.2.
56
57

EXTENSIONS

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

NOTES

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

EXPERIMENTAL FEATURES

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

LIMITATIONS

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

BUGS

247       Please  report  any  issues  on   the   project   tracker   on   GitHub
248http://github.com/Oblomov/clinfo⟩.
249
250
251
252clinfo 2.2.18.04.06               2018-04-06                         CLINFO(1)
Impressum