- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
Link Copied
8 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Thanks for the usefull feedback.
We'll cosider to provide libOpenCL with different soname on our future SDKs to ensure better portability.
Thanks,
Uri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, you can redistribute the package. We will fix the txt lists.
Thanks,
Uri
Thanks,
Uri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dennis S. wrote:That version comes from version.txt file that's present in the original rpm: intel_ocl_sdk_2012_x64.rpmThe 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.
Cheers,
Kacper
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any further information from Intel on the matter? Has anything been done about this, yet?

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page