Release 2.2.5
[ocl-icd] / README
1 This package aims at creating an Open Source alternative to vendor specific
2 OpenCL ICD loaders.
3
4 The main difficulties to create such software is that the order of
5 function pointers in a structure is not publicy available.
6   This software maintains a YAML database of all known and guessed
7 entries.
8
9   If the configure script is called with --enable-update-database,
10 then:
11 - a dummy OpenCL implementation using available headers on the system
12   is created
13 - this dummy OpenCL implementation is installed system-wide (root
14   access needed) with the file dummy.icd in /etc/OpenCL/vendors/
15 - a test program then calls every function defined in the
16   headers and thus obtains the function mapping inside the demultiplexer
17 So, if an other OpenCL ICD loader is installed on the system, this
18 allows us to discover the mapping of new entries in the structure,
19 entries that are then recoreded in the YAML database.
20   Of course, if the currently installed OpenCL ICD loader is this one,
21 there wont be any problems but no new mapping will be discovered.
22
23 This package also delivers a skeleton of bindings to incorporate inside an
24 OpenCL implementation to give it ICD functionalities.
25
26 Main Make targets:
27 all/check/install/...: builds the library and bindings from database
28 update-database: adds new functions to the database from the currently
29   installed OpenCL ICD Loader. Needs root permission.