{
    "content": [
        {
            "type": "text",
            "text": "# libOpenCL (man)\n\n## NAME\n\nlibOpenCL, libOpenCL.so - OCL-ICD implementation of OpenCL ICD loader\n\n## DESCRIPTION\n\nlibOpenCL.so is the library linked by OpenCL programs. It does not contains any OpenCL\nimplementation itself, but merely act as a dispatcher to real OpenCL implementations provided\nas OpenCL Installable Client Driver (ICD). An ICD loader should be able to load ICDs provided\nby any vendors.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION**\n- **ENVIRONMENT**\n- **SEE ALSO**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "libOpenCL",
        "section": "",
        "mode": "man",
        "summary": "libOpenCL, libOpenCL.so - OCL-ICD implementation of OpenCL ICD loader",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "ENVIRONMENT",
                "lines": 71,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "libOpenCL, libOpenCL.so - OCL-ICD implementation of OpenCL ICD loader\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "libOpenCL.so is the library linked by OpenCL programs. It does not contains any OpenCL\nimplementation itself, but merely act as a dispatcher to real OpenCL implementations provided\nas OpenCL Installable Client Driver (ICD). An ICD loader should be able to load ICDs provided\nby any vendors.\n\nAccording to OpenCL specifications from Khronos (see [Khronos]), the ICD Loader looks for\nfiles into /etc/OpenCL/vendors directory and, for each file whose name ends with .icd, the\nICD Loader loads with dlopen(3) the shared library whose name is on the first line of the\n.icd file.\n\nEach shared library name in \".icd\" files can have its path, or it can be a plain filename. In\nthe latter case, the ICD shared library will be looked for into the standard dynamic library\nloader paths.\n",
                "subsections": []
            },
            "ENVIRONMENT": {
                "content": "Some environment variables can be used modify the default behavior of libOpenCL.\n\nOPENCLVENDORPATH\nThis variable allows one to modify the default /etc/OpenCL/vendors path. It is compatible\nwith some other ICD loaders (but not all of them, as the variable is not part of the\nstandard). Note that $OCLICDVENDORS (see below) is used in priority if defined and not\nempty.\n\nOCLICDVENDORS\nThis variable allows one to change the way ICD are searched on the system. Several cases\nare considered:\n\n1. if $OCLICDVENDORS is a directory path, then this path replaces the\n\"/etc/OpenCL/vendors\" path in the standard behavior: the loader will use the .icd\nfiles in this directory;\n\n2. else, if $OCLICDVENDORS ends with .icd, libOpenCL.so will only load the ICD whose\nshared library name is wrote into the specified \".icd\" file;\n\nIf there is no slashes into $OCLICDVENDORS, libOpenCL.so will first try to use\n/etc/OpenCL/vendors/$OCLICDVENDORS (or $OPENCLVENDORPATH/$OCLICDVENDORS if\nOPENCLVENDORPATH is defined). If this fail or if there are shashes, it uses\n$OCLICDVENDORS (as a relative or absolute file name path).\n\n3. else libOpenCL.so will try to load $OCLICDVENDORS as the ICD shared library itself\n(i.e. to load it directly with dlopen(3)).\n\nOCLICDLAYERS\nThis variable allows one to specify a colon separated list of layers to load, specifying\ntheir path. This support is experimental.\n\nOCLICDASSUMEICDEXTENSION\nIf set to an non-empty value, contrary the Khronos specification, the loader will not\ncheck that the loaded ICDs declare the clkhricd extension. It will also use the\nclGetPlatformInfo from the dispatch table if no such function is globally available. You\nmay need to define this environment variable if you are using not (fully) compliant ICD,\nor if you are using the Intel ICD together with optirun(1). In the latter case, a bug\ninto the Intel ICD will make the application crash.\n\nIf set to the debug value, some additional messages will be printed in debug mode (see\nOCLICDDEBUG below).\n\nOCLICDPLATFORMSORT\nAllows one to choose the way platforms are sorted when presented to programs through\nclGetPlatformIDs(3). Current provided algorithms are:\n\n•   devices: first, list platforms that support most GPU, then most CPU then most\naccelerators. If OCLICDPLATFORMSORT is not set or set to an unknown value, this\nalgorithm is used.\n\n•   none: no sort is done and the order can change at each run.\n\nOCLICDDEFAULTPLATFORM\nNumber of the platform to choose as default platform. Note that using this environment\nvariable without ensuring the use of a sort algorithm for platforms is not really useful.\n\nOCLICDDEBUG\nIf ocl-icd has been compiled with debug support, you can set this environment variable to\na value where each bit display some kind of informations. Defined values are:\n\n•   1: warnings (enabled by default if debug support is present and OCLICDDEBUG is not\nset)\n\n•   2: informative messages\n\n•   4: entering/exiting for some OpenCL functions\n\n•   8: dump of the internal structure of loaded ICDs\n\nOCLICDDEBUG is mainly useful for ocl-icd development itself and/or for ICD development.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Khronos OpenCL registry website\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Vincent Danjean <Vincent.Danjean@ens-lyon.org>\nAuthor.\n\n\n\n2015-06-08                                 LIBOPENCL(7)",
                "subsections": []
            }
        }
    }
}