Re: [gentoo-dev] RFC: Rethinking virtual/opencl and eselect-opencl

2020-04-06 Thread Marek Szuba
On 2020-04-06 06:27, Michał Górny wrote:

> While at it, is there any chance to rewrite eselect-opencl so that it
> stops writing into /usr and uses environment approach like eselect-
> opengl does?

I think I'd rather just nuke eselect-opencl altogether and force the use
of an ICD loader for all implementations. Looks like it will be easier
than Matt and I thought too, touch wood:
 - as previously mentioned, most of the runtimes currently in the tree
actually REQUIRE using an ICD loader. Of the remaining two, I know for a
fact at least the latest version of intel-ocl-sdk works fine via a
loader so the only one that remains to be verified is
x11-drivers/nvidia-drivers[uvm];
 - likewise, I have confirmed that with the possible exception of
x11-drivers/nvidia-drivers[uvm], none of the presently available
runtimes install their own header files that would have to be symlinked
into place by eselect-opencl.

-- 
MS



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] RFC: Rethinking virtual/opencl and eselect-opencl

2020-04-05 Thread Michał Górny
On Sun, 2020-04-05 at 22:13 +0100, Marek Szuba wrote:
> On 2020-04-02 15:31, Marek Szuba wrote:
> 
> > 3. Test if downstream applications are happy with the new unified OpenCL
> > headers required by the Khronos Group ICD loader and if they are, add
> > dev-libs/opencl-icd-loader to virtual/opencl as an alternative to ocl-icd;
> 
> Quick update on this: today I have attempted to rebuild and test various
> OpenCL-dependent packages using the unified headers and
> dev-libs/opencl-icd-loader. The good news is, they have all been
> perfectly happy with them. The bad news is, I actually had to manually
> symlink all contents
> /usr/lib/OpenCL/vendors/opencl-icd-loader/include/CL/ into
> /usr/include/CL/ for this to work because eselect-opencl contains a
> hard-coded list of expected vendor header files.
> 
> In other words, it will be necessary to either teach eselect-opencl how
> to handle the unified headers or make it possible for it to let the
> contents of /usr/include/CL be. Personally I am leaning towards the
> latter - it doesn't even handle legacy headers that well (it installs
> several versions into /usr/lib/OpenCL/global but in the end offers no
> way of switching between them), and in any case even its description
> suggests its job is to switch between implementations rather than handle
> global headers.

While at it, is there any chance to rewrite eselect-opencl so that it
stops writing into /usr and uses environment approach like eselect-
opengl does?

-- 
Best regards,
Michał Górny



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


Re: [gentoo-dev] RFC: Rethinking virtual/opencl and eselect-opencl

2020-04-05 Thread Marek Szuba
On 2020-04-02 15:31, Marek Szuba wrote:

> 3. Test if downstream applications are happy with the new unified OpenCL
> headers required by the Khronos Group ICD loader and if they are, add
> dev-libs/opencl-icd-loader to virtual/opencl as an alternative to ocl-icd;

Quick update on this: today I have attempted to rebuild and test various
OpenCL-dependent packages using the unified headers and
dev-libs/opencl-icd-loader. The good news is, they have all been
perfectly happy with them. The bad news is, I actually had to manually
symlink all contents
/usr/lib/OpenCL/vendors/opencl-icd-loader/include/CL/ into
/usr/include/CL/ for this to work because eselect-opencl contains a
hard-coded list of expected vendor header files.

In other words, it will be necessary to either teach eselect-opencl how
to handle the unified headers or make it possible for it to let the
contents of /usr/include/CL be. Personally I am leaning towards the
latter - it doesn't even handle legacy headers that well (it installs
several versions into /usr/lib/OpenCL/global but in the end offers no
way of switching between them), and in any case even its description
suggests its job is to switch between implementations rather than handle
global headers.

-- 
MS



signature.asc
Description: OpenPGP digital signature