Hi Vincent,

first of all sorry for taking so long to look at this, but the freeze is 
approaching and time is running out
(specially because this bug needs a trip on the new queue for being fixed, and 
won't be fixed in jessie probably)


>I just looked at the various package in src:boinc (only the debian/control
>file, I did not inspect the real packages). If I understand correctly
>(correct me if I'm wrong), only the 'client' part of boinc is concerned
>by gpu/OpenCL/...
>You package it with
>- boinc-client that contains all the client software (and that can use
>  GPU, ... due to the use of dlopen if these additional software are
>  present)
>- boinc-nvidia-cuda that installs dependencies required for boinc-client
>  to use NVidia cards with CUDA
>- boinc-amd-opencl that installs dependencies required for boinc-client
>  to use AMD cards with OpenCL or Catalyst directly ?

exactly.

>If this is the case, I would have put 'client' in the last two package names
>and make them depends on boinc-client. But if GPU can also be used
>by the boinc manager, then I would let these packages as they are.

you are completely right, the manager is just a package that allows you to 
control the client (and various else, but nothing GPU related).

>My main "problem" is the target of boinc-amd-opencl.
>boinc-nvidia-cuda seems clear: to allow the use of NVidia cards with CUDA.
>I do not look a lot in the sources, so I can be wrong, but I think that
>other targets of accelerated boinc-client can be :
>[A] AMD cards with Catalyst (fglrx drivers directly)
>[B] NVidia cards with OpenCL (through NVidia ICD packaged in
>  nvidia-opencl-icd)
>[C] AMD cards with OpenCL (through AMD ICD packaged in amd-opencl-icd)
>[D] Intel cards with OpenCL (through Intel ICD not (yet) packaged)
>[E] other OpenCL implementations

>And I fail to see what of these is targeted by boinc-amd-opencl.
>Probably A or B/C/D/E but without requiring to install any specific ICD in
>the case of OpenCL
>  Note that, contrary to NVidia, AMD really maintains its OpenCL drivers.
>So, you probably should either split A and OpenCL support but you can
>ensure that OpenCL default to the AMD ICD by default.

Looking at the code there is a client/gpu_amd.cpp
but seems to detect also intel cards so I'll go for something like "opencl" 
rather than "amd-opencl"

>Let's try:

>Package: boinc-client
>Suggests: boinc-opencl, boinc-nvidia-cuda, boinc-amd-fglrx, ...
>=> install software client

I did: 
Suggests: boinc-client-opencl, boinc-client-fglrx, boinc-client-nvidia-cuda

>Package: boinc-nvidia-cuda (or boinc-client-nvidia-cuda)
>Depends: boinc-client, libcuda1
>Recommends: libcudart5.5 | libcudart6.0
>=> install what is required to run client with NVidia cards
>   used with Cuda

@Package: boinc-client-nvidia-cuda
@Architecture: amd64 i386
@Section: contrib/net
@Priority: extra
@Breaks: boinc-nvidia-cuda
@Replaces: boinc-nvidia-cuda
@Depends: ${misc:Depends}, boinc-client, libcuda1 | libcudart5.5 | libcudart6.0 
| libcudart6.5

(the first for debian, the others for ubuntu)


(there is an upcoming 6.5)

>Package: boinc-amd-fglrx
>Depends: boinc-client, libfglrx-virtual
>Recommends: fglrx-driver, libgl1-fglrx-glx-virtual
>=> install what is required to run client with AMD cards
>   used with Catalyst/fglrx

just client-fglrx for me (if I understand correctly what you mean)

@Package: boinc-client-fglrx
@Architecture: amd64 i386
@Section: contrib/net
@Priority: extra
@Breaks: boinc-nvidia-cuda
@Replaces: boinc-nvidia-cuda
@Depends: ${misc:Depends}, boinc-client
@Recommends: libfglrx | fglrx-updates | fglrx

>Package: boinc-opencl
>Depends: ocl-icd-libopencl1 | libopencl-1.1-1
>Recommends: amd-opencl-icd | opencl-icd
>=> install what is required to run client with OpenCL
>   recommends an ICD (OpenCL implementation) and ask,
>   by default, the AMD one

BTW I put "any" as architecture, since it seems to be available on almost all 
archs now

@Package: boinc-client-opencl
@Architecture: any
@Section: contrib/net
@Priority: extra
@Breaks: boinc-amd-opencl
@Replaces: boinc-amd-opencl
@Depends: ${misc:Depends}, ocl-icd-libopencl1 | libopencl-1.1-1
@Recommends: amd-opencl-icd | opencl-icd



>I know less plain cuda and fglrx than OpenCL. So I'm less
>confident for proposed dependencies for these two.


>You should not.
>nvidia-libopencl1, amd-libopencl1 and ocl-icd-libopencl1 must be
>fully interchangeable (for OpenCL 1.1). If you also want OpenCL 1.2
>and/or OpenCL 2.0, then only amd-libopencl1 and ocl-icd-libopencl1
>support them. ocl-icd-libopencl1 should be preferred because its free
>(hence the proposed alternative above)

wonderful, this is really nice when omething is standard :)


>All boinc ? Or only the boinc-nvidia-cuda ?

sadly all boinc!


>At least, OpenCL interface (provided by either nvidia-libopencl1,
>amd-libopencl1 or ocl-icd-libopencl1) is very stable. It is normalized
>by the Chronos consortium.

wonderful to hear that somebody does a good job on maintaining a stable 
interface



>Put it in Recommends or Suggests. It is the OpenCL implementation
>and the 'right' Depends depends on your hardware. So, there is no
>way to have apt always selecting the good driver.

>Use alternatives. It just that I do not consider them in my first
>mail (nor in this one) because, as I do not have ubuntu, I cannot
>easily look at package descriptions and dependencies with
>apt-cache


Hint: sometimes it happens to have necessity to look at such things, there is 
an easy and great tool helping you to achieve the result:

pbuilder-dist utopic create
pbuilder-dist utopic login
and you can play whatever you want ;)

I'm attaching the patch
diff --git a/debian/control.in b/debian/control.in
index 0a5433d..6ac4c55 100644
--- a/debian/control.in
+++ b/debian/control.in @Section: contrib/net
@Priority: extra
-@Depends: ${misc:Depends}, boinc-client, libcuda1
-@Suggests: libcudart5.5 | libcudart6.0 | libcudart6.5
+@Breaks: boinc-nvidia-cuda
+@Replaces: boinc-nvidia-cuda
+@Depends: ${misc:Depends}, boinc-client, libcuda1 | libcudart5.5 | 
libcudart6.0 | libcudart6.5
@Description: metapackage for CUDA-savvy BOINC client and manager
@ The Berkeley Open Infrastructure for Network Computing (BOINC) is a
@ software platform for distributed computing: several initiatives of
@@ -86,6 +87,8 @@ Package: boinc
@Architecture: any
@Section: contrib/net
@Priority: extra
+@Breaks: boinc-amd-opencl
+@Replaces: boinc-amd-opencl
@Depends: ${misc:Depends}, ocl-icd-libopencl1 | libopencl-1.1-1
@Recommends: amd-opencl-icd | opencl-icd
@Description: metapackage for AMD/ATI OpenCL-savvy BOINC client and manager
@@ -106,8 +109,10 @@ Package: boinc
@Architecture: amd64 i386
@Section: contrib/net
@Priority: extra
-@Depends: ${misc:Depends}, boinc-client, libfglrx-virtual



-@Recommends: fglrx-driver, libgl1-fglrx-glx-virtual
+@Breaks: boinc-nvidia-cuda
+@Replaces: boinc-nvidia-cuda
+@Depends: ${misc:Depends}, boinc-client
+@Recommends: libfglrx | fglrx-updates | fglrx
@Description: metapackage for AMD/ATI fglrx-savvy BOINC client and manager
@ The Berkeley Open Infrastructure for Network Computing (BOINC) is a
@ software platform for distributed computing: several initiatives of


many thanks for helping in fixing this long stading bug!!!

cheers,

Gianfranco



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to