[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OpenCL in Debian



Dnia 2012-07-01, nie o godzinie 00:44 +0200, Vincent Danjean pisze:
[ cut ]
> * at least, here is a summary of problems/warning for different combinaison of
>   ICD *Loaders* used at compile-time (CT) and at run-time (RT)
>   (problems with ICD compatibility themselves are not taken into account here)
> 
>    \    |         |       |         |       |
>     \RT | ocl-icd | AMD   |  NVidia | Intel |
>      \  |         |       |         |       |
>    CT \ |         |       |         |       |
> --------+---------+-------+---------+-------+
>         |         |       |         |       |
> ocl-icd |   ok    |  ok   |   MVS   |  MVS  |
>         |         |       |   MS    |  MSO  |
> --------+---------+-------+---------+-------+
>         |         |       |         |       |
> AMD     |   ok    |  ok   |   MVS   |  MVS  |
>         |         |       |   MS    |  MSO  |
> --------+---------+-------+---------+-------+
>         |         |       |         |       |
> NVidia  |   ok    |  ok   |   ok    |  MSO  |
>         |         |       |         |       |
> --------+---------+-------+---------+-------+
>         |         |       |         |       |
> Intel   |   BSO   |  BSO  |   BSO   |  ok   |
>         |         |       |   MS    |       |
> --------+---------+-------+---------+-------+
> MVS: missing version on symbol => a warning from the linker at program start
> MS: missing symbols. The linker can fail to find some symbols (NVidia ICD
>     Loader still only support the 1.1 API)
> BSO: the libOpenCL.so link must be present at runtime.
>     The requested soname is libOpenCL.so
>     The soname in the loaded library (filename) is libOpenCL.so.1
> MSO: wrong soname:
>     The requested soname is libOpenCL.so.1
>     The soname in the loaded library (filename) is libOpenCL.so
> 
> 
>   Many thanks for readers that go until here.
>     Vincent

Thanks for extensive summary. I have one dimension to add to
this table though: supported OpenCL versions.
Currently Debian contains opencl-headers in version 1.2.
Many programs when they encounter headers in particular
version assume that they can expect libraries in the same version.
This was problem with PyOpenCL when compiled with NVIDIA ICD loader:
PyOpenCL compilation failed because NVIDIA ICD supports version 1.1
while headers are in version 1.2. This resulted in PyOpenCL wanting
to use non-present functions.
Unfortunately I there is possibility to write:
opencl-headers (= 1.1) & nvidia-libopencl1 | \
 opencl-headers (= 1.2) & ( amd-libopencl1 | ocl-icl-libopencl1)
in Build-Depends ;-) 

Best regards.

-- 
Tomasz Rybak <tomasz.rybak@post.pl> GPG/PGP key ID: 2AD5 9860
Fingerprint A481 824E 7DD3 9C0E C40A  488E C654 FB33 2AD5 9860
http://member.acm.org/~tomaszrybak

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: