Skip to content

OCL-dev/ocl-icd

Repository files navigation

This package aims at creating an Open Source alternative to vendor specific
OpenCL ICD loaders.

The main difficulties to create such software is that the order of
function pointers in a structure is not publicy available.
  This software maintains a YAML database of all known and guessed
entries.

  If the configure script is called with --enable-update-database,
then:
- a dummy OpenCL implementation using available headers on the system
  is created
- this dummy OpenCL implementation is installed system-wide (root
  access needed) with the file dummy.icd in /etc/OpenCL/vendors/
- a test program then calls every function defined in the
  headers and thus obtains the function mapping inside the demultiplexer
So, if an other OpenCL ICD loader is installed on the system, this
allows us to discover the mapping of new entries in the structure,
entries that are then recoreded in the YAML database.
  Of course, if the currently installed OpenCL ICD loader is this one,
there wont be any problems but no new mapping will be discovered.

This package also delivers a skeleton of bindings to incorporate inside an
OpenCL implementation to give it ICD functionalities.

Main Make targets:
all/check/install/...: builds the library and bindings from database
update-database: adds new functions to the database from the currently
  installed OpenCL ICD Loader. Needs root permission.