Provided by: ocl-icd-libopencl1_2.2.8-1_amd64 bug


       libOpenCL, - OCL-ICD implementation of OpenCL ICD loader

DESCRIPTION is the library linked by OpenCL programs. It does not contains any OpenCL
       implementation itself, but merly act as a dispatcher to real OpenCL implementations
       provided as OpenCL Installable Client Driver (ICD). An ICD loader should be able to load
       ICDs provided by any vendors.

       According to OpenCL specifications from Khronos (see [Khronos]), the ICD Loader looks for
       files into /etc/OpenCL/vendors/ directory and, for each file whose name ends with .icd,
       the ICD Loader loads with dlopen(3) the shared library whose name is on the first line of
       the .icd file.

       Shared library name in ".icd" files can have its path, or it can be a plain filename. In
       the latter case, the ICD shared library will be look for into the standard dynamic loader


       Some environment variables can be used modify the default behavior of libOpenCL.

           This variable allows one to change the way ICD are searched on the system. Several
           cases are considered:

            1. if $OCL_ICD_VENDORS is a directory path, then this path replaces the
               "/etc/OpenCL/vendors" path in the standard behavior: the loader will use the .icd
               files in this directory;

            2. else, if $OCL_ICD_VENDORS ends with .icd, will only load the ICD
               whose shared library name is wrote into the specified ".icd" file;

               If there is no slash into $OCL_ICD_VENDORS, will first try to use
               /etc/OpenCL/vendors/$OCL_ICD_VENDORS. If this fail, it uses $OCL_ICD_VENDORS (as a
               relative or absolute file name path).

            3. else will try to load $OCL_ICD_VENDORS as the ICD shared library
               itself (i.e. to load it directly with dlopen(3)).

           If set, contrary the Khronos specification, the loader will not check that the loaded
           ICDs declare the cl_khr_icd extension. You may need to define this environment
           variable if you are using the Intel ICD together with optirun(1). Else, a bug into the
           Intel ICD will make the application crash.

           Allows one to choose the way platforms are sorted when presented to programs through
           clGetPlatformIDs(3). Current provided algorithms are:

           ·   devices: first, list platforms that support most GPU, then most CPU then most
               accelerators. If OCL_ICD_PLATFORM_SORT is not set or set to an unknown value, this
               algorithm is used.

           ·   none: no sort is done and the order can very at each run.

           Number of the platform to choose as defaut platform. Note that using this environment
           variable without specifying a sort algorithm for platforms is not really useful.

           If ocl-icd has been compiled with debug support, you can set this environment variable
           to a value where each bit display some kind of informations. Defined values are:

           ·   1: warnings (enabled by default if debug support is present and OCL_ICD_DEBUG is
               not set)

           ·   2: informative messages

           ·   4: entering/exiting for some OpenCL functions

           ·   8: dump of the internal structure of loaded ICDs

           OCL_ICD_DEBUG is mainly useful for ocl-icd development itself and/or for ICD


       Khronos OpenCL registry website


       Vincent Danjean <>

                                            2015-06-08                               LIBOPENCL(7)