OpenCL is standard for cross-platform hardware-independent parallel programming: http://www.khronos.com/opencl/ Current OpenCL packaging in Debian assumes that there can be many different OpenCL implementations present on the system. Each implementation is supposed to provide package opencl-icd (Installable Client Driver, ICD) which will allow for client software to chose OpenCL library to run. To have working OpenCL you need to have two packages installed, libopencl1 and opencl-icd: * libopencl1 is OpenCL management library which manages all OpenCL providers * opencl-icd points to particular OpenCL provider, e.g. Mesa, Beignet, AMD, or NVIDIA While you can install as many of opencl-icd packages as you want (e.g. both amd-opencl-icd and nvidia-opencl-icd), you can install only one package providing libopencl1. I recommend using free ocl-icd-libopencl1 against which this package was build as it works well with different OpenCL providers. You can still try to use other (non-free) libraries, e.g. amd-libopencl1 or nvidia-libopencl1, but those are less stable and there have been problems with running them, especially while having many ICD installed. As packages is in main, it depends on mesa-opencl-icd (also in main) or other opencl-icd package. If you do not have any opencl-icd installed, apt will install mesa-opencl-icd. If it does not work and you have Intel GPU you can install beignet which provides OpenCL support for Intel hardware. If you want to use PyOpenCL with other hardware (AMD or NVIDIA) you'll need to install appropriate package from non-free providing opencl-icd. Error in function dlGetPlatformIDs means that there is no OpenCL implementation available on the system.