libOpenCL soname in the Linux SDK

libOpenCL soname in the Linux SDK

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

9 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

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

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

Yes, you can redistribute the package. We will fix the txt lists.

Thanks,
Uri

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

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

.

Citation :

Dennis S. a écrit :

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

Any further information from Intel on the matter? Has anything been done about this, yet?

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui