OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU
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.
1664 Discussions

(Linux) Incompatibility between SDK experimental ICD and CPU runtime


I have recently installed the 2017 R2 SDK on a Linux machine, alongside an existing installation of the 2016 CPU runtime. At installation time, I have opted to install the experimental runtime with OpenCL 2.1 support. Now, when I run clinfo I randomly come across a segmentation fault

Stack dump:
0.      Running pass 'ChannelPipeTransformation' on module 'main'.

due to the 2016 runtime finding the experimental instead of its own. I can work around this by selectively hiding one of the two platforms, but an “official” fix (e.g. by renaming the libraries that differ between experimental and official runtimes) would be preferrable.

0 Kudos
3 Replies

Hi GiuseppeB,

Thanks for sharing your concern.

More flexibility in terms of picking an implementation can be useful.

Would it be possible for you to share an example file tree of the absolute paths to various libraries in use in your set up? Can it include date and time stamp info? This would assist in a sighting report.

Can you also share an example of how your icd references are set up? A dump like this would be helpful to grab icd references:

$find /etc/OpenCL/vendors/*icd | xargs -I{} sh -c "echo {}; cat {}; echo;"






The forum should have an attachment facility to post a list via Attach Files to Post dropdown.



Hello Michael, thanks for your reply.

I'm running on Debian unstable with the ocl-icd-libopencl1 (version 2.2.12-1) as ICD dispatcher.

The list of ICDs is short enough so I'm putting it inline here:


To verify that the issue arises from the conflict between the intel64 and intel_exp64 ICDs, I've tried running with only a subset of the ICDs, removing one of them each time, and keeping all the others; I get the segfault if and only if both intel64 and intel_exp64 are present. I do not get it when only one of them are present, even if all other ICDs are there. I was also able to reproduce the issue by only having intel64 and intel_exp64 as ICDs, and again removing either of them allows clinfo to complete without segmentation faults.

I'm attaching to this post the find -ls output for the Intel SDK and runtime installations, as well as the bt full output from gdb when clinfo segfaults. Let me know if you need any more information.