Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
20 Views

(Linux) Incompatibility between SDK experimental ICD and CPU runtime 6.4.0.25

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 libOclCpuBackEnd.so 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
Highlighted
20 Views

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;"
/etc/OpenCL/vendors/intel_exp64.icd
/opt/intel/opencl/exp-runtime-2.1/lib64/libintelocl_2_1.so
/etc/OpenCL/vendors/intel.icd
/opt/intel/opencl/libIntelOpenCL.so

 

Thanks.

-MichaelC

0 Kudos
Highlighted
20 Views

GiuseppeB,

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

-MichaelC

0 Kudos
Highlighted
20 Views

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:

/etc/OpenCL/vendors/amdocl64.icd
libamdocl64.so
/etc/OpenCL/vendors/intel64.icd
/opt/intel/opencl-1.2-6.4.0.25/lib64/libintelocl.so
/etc/OpenCL/vendors/intel-beignet.icd
/usr/local/lib/beignet//libcl.so
/etc/OpenCL/vendors/intel_exp64.icd
/opt/intel/opencl/exp-runtime-2.1/lib64/libintelocl_2_1.so
/etc/OpenCL/vendors/mesa.icd
libMesaOpenCL.so.1
/etc/OpenCL/vendors/nvidia.icd
libnvidia-opencl.so.1
/etc/OpenCL/vendors/pocl.icd
/usr/local/lib/libpocl.so.2.2.0

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.

0 Kudos