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.
1663 Discussions

libOpenCL soname in the Linux SDK

Vincent_Danjean
Beginner
405 Views
Hi,

The Linux SDK for OpenCL provides the libOpenCL.so library with "libOpenCL.so" as soname.
AMD, NVidia and the new free OpenCL ICD Loader ocl-icd[1] all use the "libOpenCL.so.1" soname.

In order to ensure good binary portability in the long term for OpenCL applications, and in order to allow OpenCL applications compiled with Intel SDK to be run on Linux Platform with other OpenCL SDK installed (or even with the AMD ICD Loader but the Intel ICD), but also in order to allow the Intel OpenCL SDK to run a OpenCL programs compiled with another vendor SDK, it would be very pleasant that the library provided by the Linux Intel SDK has the " libOpenCL.so.1" soname. Of course, a libOpenCL.so symlink must still be provided in order to allow linkage.

Putting the correct soname is easy (-soname option of classical linkers).

Another improvment (but less critical) would be that the Intel libOpenCL.so.1 also use versionned symbols as the AMD and the ocl-icd ones do. This will allows smoother upgrade whatever the way the ABI changes. This can be done with the --version-script option of classical linkers.
ocl-icd can show an example of a correct soname and versionned symbols (the shared library is created with libtool but it is easy to do this by hand)

Regards,
Vincent

ocl-icd projet (BSD licence) : https://forge.imag.fr/projects/ocl-icd/
ocl-icd git : https://forge.imag.fr/anonscm/git/ocl-icd/ocl-icd.git
0 Kudos
8 Replies
Uri_L_Intel
Employee
405 Views
Hello Vincent,

Thanks for the usefull feedback.
We'll cosider to provide libOpenCL with different soname on our future SDKs to ensure better portability.

Thanks,
Uri
Vincent_Danjean
Beginner
405 Views
Hi,

Thank you very much for looking at this technical issue about binary compatibility.

While I'm here, I would like to also ask you if this is intentional that the license of the SDK does not list any file as redistributable. In your license text, we can read:
B. "Redistributables" are the files listed in the following text files that may
be included in the Materials for the applicable Intel Software Development
Product: clredist.txt, credist.txt, fredist.txt, redist.txt.

But I cannot find any clredist.txt, credist.txt, fredist.txt, nor redist.txt file.

I SDK files were redistributable, it would be possible to create Debian package of the Intel OpenCL SDK (in the non-free section, as the one of AMD and NVidia).

So, can you confirm that SDK files are not redistributable or tell us if this is an error and files should be redistributables?

Regards,
Vincent

Uri_L_Intel
Employee
405 Views
Yes, you can redistribute the package. We will fix the txt lists.

Thanks,
Uri
Vincent_Danjean
Beginner
405 Views
I just looked at the Intel SDK for OpenCL* Applications 2013 Beta for linux available at http://software.intel.com/en-us/vcsource/tools/opencl-sdk-2013 The soname of libOpenCL.so is still libOpenCL.so and not libOpenCL.so.1 (as all other vendors: AMD, NVidia and pocl) And there is still no clredist.txt, credist.txt, fredist.txt, nor redist.txt, so the software can not be redistributed (and it still cannot be packaged in Debian (non-free section) for example). Regards, Vincent
Dennis_S_
Beginner
405 Views
I have the same issue. Maybe it is interesting for you that I cannot switch from the AMD OpenCL library to the Intel library, because of this issue. The versions I tried to use are called 1.5 and 2.0.31360 in Gentoo. I cannot find the latter being mentioned in http://software.intel.com/en-us/articles/opencl-release-notes/ , so maybe it is no official number. See also the Gentoo downstream bugreport: https://bugs.gentoo.org/show_bug.cgi?id=409015
Dennis_S_
Beginner
405 Views
.
Kacper_Kowalik
Beginner
405 Views
Dennis S. wrote:

The versions I tried to use are called 1.5 and 2.0.31360 in Gentoo. I cannot find the latter being mentioned in http://software.intel.com/en-us/articles/opencl-release-notes/ , so maybe it is no official number.

That version comes from version.txt file that's present in the original rpm: intel_ocl_sdk_2012_x64.rpm
Cheers,
Kacper
Dennis_S_
Beginner
405 Views
Any further information from Intel on the matter? Has anything been done about this, yet?
Reply