OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1722 Discussions

What is the relation between libigdrcl.so and libOpenCL.so?

Albatross
Beginner
1,379 Views

I am a beginer in OpenCL, trying to learn it with intel opencl implementaion with CPU. I see`libigdrcl.so` is referred in the intel.icd file, while in some OpenCL tutorials(not for intel CPU implementation) the .icd file will refer the `libOpenCL.so` file instead. What is the relation between `libigdrcl.so` and `libOpenCL.so`? 

Labels (1)
0 Kudos
1 Reply
Ben_A_Intel
Employee
1,351 Views

Good question!  I actually wrote a blog/article about this a few years ago.  It's more about troubleshooting OpenCL on Linux, but it covers both of these components:

https://github.com/bashbaug/OpenCLPapers/blob/master/OpenCLOnLinux.asciidoc

In short:

On most systems, libOpenCL.so is the "OpenCL ICD loader".  This is a shared component that applications link to that knows how to discover OpenCL drivers installed on a system and send OpenCL calls to the right driver.  Note: ICD is an acronym for "installable client driver".

libigdrcl.so is the "Intel GPU OpenCL driver", or alternatively, the "Intel GPU OpenCL ICD".  This implements the OpenCL APIs for Intel GPUs.

There could be other drivers installed on the system to support other devices.  The .icd file in /etc/OpenCL/vendors tells the OpenCL ICD loader which drivers are installed and how to load them.

Hope this helps!

Reply