Python LogicError: clGetPlatformIDs failed: platform not found khr

Viewed 12605

While making nosetests for the set of Python programs in Ubuntu an error occurs:

devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr


File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", line 30, in <module>
    devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr

How it's possible to fix it?

6 Answers

It seems you have pyopencl installed but none of the actual device drivers. Please consult the documentation at https://documen.tician.de/pyopencl/misc.html.

Here is the description of such a behaviour:

Note that PyOpenCL is no fun (i.e. cannot run code) without an OpenCL device driver (a so-called “ICD”, for “installable client driver”) that provides access to hardware through OpenCL. If you get an error message like pyopencl.cffi_cl.LogicError: clGetPlatformIDs failed: , that means you have no OpenCL drivers installed.

Basically, the next command should be enough to get it running on a CPU:

[pip]conda install pocl

For proper installation of AMD and Nvidia devices look for vendor supplied OpenCL drivers.

This could be because OpenCL drivers arent properly installed.

Intel CPUs require OpenCL Runtime for Intel Core and Intel Xeon Processors (16.1.1 or later). Download and install OpenCL™ Runtime latest from intel website. Ignore the compatibility warning.

Source: https://youtu.be/AieYqNQ6ADM

Try

$ sudo apt install pocl-opencl-icd

I tested it on Ubuntu WSL for Windows 10, Python 3.8.10.

Related