unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Have GPGPU support in guix?
@ 2018-04-24 23:22 Fis Trivial
  2018-04-24 23:29 ` Joshua Branson
  2018-04-25 17:17 ` Ricardo Wurmus
  0 siblings, 2 replies; 23+ messages in thread
From: Fis Trivial @ 2018-04-24 23:22 UTC (permalink / raw)
  To: guix-devel

Hi Guixs, this is actually a feature wish.

I tried to use guix to manage many of my softwares on my system, but
some dependencies are missing which is blocking a full transition to
Guix based system and development environment. Most notably is GPU
computing support.

My daily routine is doing machine learning, which requires GPU for
computing nowadays. Currently I need to use CUDA from NVidia, as many of
you might know, it's not free software, not even an open source
software. However, it's the de fato toolchain in deep learning
community, so basically it's a must have dependency for most of the
related libraries if you want decent performance. Time passes and
hardwork have been done, now we have some libraries ported to OpenCL or
HIP (from AMD), it's not mature yet but I think we have a pretty good
shot at working them out in near future.

However, I wanted to manage all of these with guix so that we can have a
unified dependency tree. Currently there are a few options for OpenCL
runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
project and the implementation in mesa.

I tried to package beignet (an old OpenCL runtime from Intel) but it
wasn't successful due to failed tests (it failed from recognizing
device).
https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm

To support GPU computing, we need a full stack of softwares, from kernel
to user space libraries. When it comes to low level part I got have
litte to no knowledge, so I am hoping someone here can provide some
help/insight for having GPU computing libraries in Guix.

Thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-24 23:22 Have GPGPU support in guix? Fis Trivial
@ 2018-04-24 23:29 ` Joshua Branson
  2018-04-24 23:32   ` Fis Trivial
  2018-04-25 12:41   ` Ludovic Courtès
  2018-04-25 17:17 ` Ricardo Wurmus
  1 sibling, 2 replies; 23+ messages in thread
From: Joshua Branson @ 2018-04-24 23:29 UTC (permalink / raw)
  To: guix-devel

Fis Trivial <ybbs.daans@hotmail.com> writes:

> Hi Guixs, this is actually a feature wish.
>
> I tried to use guix to manage many of my softwares on my system, but
> some dependencies are missing which is blocking a full transition to
> Guix based system and development environment. Most notably is GPU
> computing support.
>
> My daily routine is doing machine learning, which requires GPU for
> computing nowadays. Currently I need to use CUDA from NVidia, as many of
> you might know, it's not free software, not even an open source
> software. However, it's the de fato toolchain in deep learning
> community, so basically it's a must have dependency for most of the
> related libraries if you want decent performance. Time passes and
> hardwork have been done, now we have some libraries ported to OpenCL or
> HIP (from AMD), it's not mature yet but I think we have a pretty good
> shot at working them out in near future.

Since this is a GNU endorsed distro, guixSD will never have an official
way to install or use CUDA.  There might eventually be an unofficial way
to install it someday via a guile potlock (or is it the guild command).
But I wouldn't recommend using it.  No one will seriously test it or
ensure that it works well.

>
> However, I wanted to manage all of these with guix so that we can have a
> unified dependency tree. Currently there are a few options for OpenCL
> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
> project and the implementation in mesa.

This is probably doable.

>
> I tried to package beignet (an old OpenCL runtime from Intel) but it
> wasn't successful due to failed tests (it failed from recognizing
> device).
> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>
> To support GPU computing, we need a full stack of softwares, from kernel
> to user space libraries. When it comes to low level part I got have
> litte to no knowledge, so I am hoping someone here can provide some
> help/insight for having GPU computing libraries in Guix.
>
> Thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-24 23:29 ` Joshua Branson
@ 2018-04-24 23:32   ` Fis Trivial
  2018-04-24 23:46     ` Joshua Branson
  2018-04-25 12:41   ` Ludovic Courtès
  1 sibling, 1 reply; 23+ messages in thread
From: Fis Trivial @ 2018-04-24 23:32 UTC (permalink / raw)
  To: Joshua Branson; +Cc: guix-devel@gnu.org


Joshua Branson writes:

> Fis Trivial <ybbs.daans@hotmail.com> writes:
>
>> Hi Guixs, this is actually a feature wish.
>>
>> I tried to use guix to manage many of my softwares on my system, but
>> some dependencies are missing which is blocking a full transition to
>> Guix based system and development environment. Most notably is GPU
>> computing support.
>>
>> My daily routine is doing machine learning, which requires GPU for
>> computing nowadays. Currently I need to use CUDA from NVidia, as many of
>> you might know, it's not free software, not even an open source
>> software. However, it's the de fato toolchain in deep learning
>> community, so basically it's a must have dependency for most of the
>> related libraries if you want decent performance. Time passes and
>> hardwork have been done, now we have some libraries ported to OpenCL or
>> HIP (from AMD), it's not mature yet but I think we have a pretty good
>> shot at working them out in near future.
>
> Since this is a GNU endorsed distro, guixSD will never have an official
> way to install or use CUDA.  There might eventually be an unofficial way
> to install it someday via a guile potlock (or is it the guild command).
> But I wouldn't recommend using it.  No one will seriously test it or
> ensure that it works well.
>

I want to get rid of CUDA, I am really tired of dealing with it. That's
why I'm counting on OpenCL or HIP.

>>
>> However, I wanted to manage all of these with guix so that we can have a
>> unified dependency tree. Currently there are a few options for OpenCL
>> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
>> project and the implementation in mesa.
>
> This is probably doable.
>
>>
>> I tried to package beignet (an old OpenCL runtime from Intel) but it
>> wasn't successful due to failed tests (it failed from recognizing
>> device).
>> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>>
>> To support GPU computing, we need a full stack of softwares, from kernel
>> to user space libraries. When it comes to low level part I got have
>> litte to no knowledge, so I am hoping someone here can provide some
>> help/insight for having GPU computing libraries in Guix.
>>
>> Thanks.

Thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-24 23:32   ` Fis Trivial
@ 2018-04-24 23:46     ` Joshua Branson
  0 siblings, 0 replies; 23+ messages in thread
From: Joshua Branson @ 2018-04-24 23:46 UTC (permalink / raw)
  To: guix-devel

Fis Trivial <ybbs.daans@hotmail.com> writes:

> Joshua Branson writes:
>
>> Fis Trivial <ybbs.daans@hotmail.com> writes:
>>
>>> Hi Guixs, this is actually a feature wish.
>>>
>>> My daily routine is doing machine learning, which requires GPU for
>>> computing nowadays. Currently I need to use CUDA from NVidia, as many of
>>> you might know, it's not free software, not even an open source
>>> software. However, it's the de fato toolchain in deep learning
>>> community, so basically it's a must have dependency for most of the
>>> related libraries if you want decent performance. Time passes and
>>> hardwork have been done, now we have some libraries ported to OpenCL or
>>> HIP (from AMD), it's not mature yet but I think we have a pretty good
>>> shot at working them out in near future.
>>
>> Since this is a GNU endorsed distro, guixSD will never have an official
>> way to install or use CUDA.  There might eventually be an unofficial way
>> to install it someday via a guile potlock (or is it the guild command).
>> But I wouldn't recommend using it.  No one will seriously test it or
>> ensure that it works well.
>>
>
> I want to get rid of CUDA, I am really tired of dealing with it. That's
> why I'm counting on OpenCL or HIP.

Ok. cool!  I'm not sure that Nvidia is currently supporting the later
versions of openCL. Kind of sad really.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-24 23:29 ` Joshua Branson
  2018-04-24 23:32   ` Fis Trivial
@ 2018-04-25 12:41   ` Ludovic Courtès
  2018-04-25 22:38     ` Fis Trivial
  1 sibling, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2018-04-25 12:41 UTC (permalink / raw)
  To: Joshua Branson; +Cc: guix-devel

Hello,

Joshua Branson <jbranso@fastmail.com> skribis:

> Fis Trivial <ybbs.daans@hotmail.com> writes:
>
>> Hi Guixs, this is actually a feature wish.
>>
>> I tried to use guix to manage many of my softwares on my system, but
>> some dependencies are missing which is blocking a full transition to
>> Guix based system and development environment. Most notably is GPU
>> computing support.
>>
>> My daily routine is doing machine learning, which requires GPU for
>> computing nowadays. Currently I need to use CUDA from NVidia, as many of
>> you might know, it's not free software, not even an open source
>> software. However, it's the de fato toolchain in deep learning
>> community, so basically it's a must have dependency for most of the
>> related libraries if you want decent performance. Time passes and
>> hardwork have been done, now we have some libraries ported to OpenCL or
>> HIP (from AMD), it's not mature yet but I think we have a pretty good
>> shot at working them out in near future.
>
> Since this is a GNU endorsed distro, guixSD will never have an official
> way to install or use CUDA.

Indeed.  Specifically, the project is committed to following the FSDG,
so CUDA doesn’t belong in Guix:

  https://gnu.org/distros/free-system-distribution-guidelines.html

Free software that you might find of interest is POCL, an OpenCL
implementation (not yet packaged in Guix):

  https://github.com/pocl/pocl

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-24 23:22 Have GPGPU support in guix? Fis Trivial
  2018-04-24 23:29 ` Joshua Branson
@ 2018-04-25 17:17 ` Ricardo Wurmus
  2018-04-25 18:04   ` Tobias Platen
  2018-04-25 22:50   ` Fis Trivial
  1 sibling, 2 replies; 23+ messages in thread
From: Ricardo Wurmus @ 2018-04-25 17:17 UTC (permalink / raw)
  To: Fis Trivial; +Cc: guix-devel


Hi,

> I tried to use guix to manage many of my softwares on my system, but
> some dependencies are missing which is blocking a full transition to
> Guix based system and development environment. Most notably is GPU
> computing support.
>
> My daily routine is doing machine learning, which requires GPU for
> computing nowadays.

I’m currently working on packaging Tensorflow (without GPU support).  I
don’t know if Tensorflow with GPU support will work with OpenCL.

--
Ricardo

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 17:17 ` Ricardo Wurmus
@ 2018-04-25 18:04   ` Tobias Platen
  2018-04-25 22:25     ` Joshua Branson
  2018-04-25 22:51     ` Fis Trivial
  2018-04-25 22:50   ` Fis Trivial
  1 sibling, 2 replies; 23+ messages in thread
From: Tobias Platen @ 2018-04-25 18:04 UTC (permalink / raw)
  To: guix-devel



On 25.04.2018 19:17, Ricardo Wurmus wrote:
>
> Hi,
>
>> I tried to use guix to manage many of my softwares on my system, but
>> some dependencies are missing which is blocking a full transition to
>> Guix based system and development environment. Most notably is GPU
>> computing support.
>>
>> My daily routine is doing machine learning, which requires GPU for
>> computing nowadays.
>
> I’m currently working on packaging Tensorflow (without GPU support).  I
> don’t know if Tensorflow with GPU support will work with OpenCL.
I don't think that any modern GPU will be supported without non-free 
software. Many of them require blobs for power management and 
instruction scheduling.

Tobias Platen
>
> --
> Ricardo
>
>
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 18:04   ` Tobias Platen
@ 2018-04-25 22:25     ` Joshua Branson
  2018-04-26  3:18       ` Pierre Neidhardt
  2018-04-25 22:51     ` Fis Trivial
  1 sibling, 1 reply; 23+ messages in thread
From: Joshua Branson @ 2018-04-25 22:25 UTC (permalink / raw)
  To: guix-devel

Tobias Platen <trisquel@platen-software.de> writes:

> On 25.04.2018 19:17, Ricardo Wurmus wrote:
>>
>> Hi,
>>
>>> I tried to use guix to manage many of my softwares on my system, but
>>> some dependencies are missing which is blocking a full transition to
>>> Guix based system and development environment. Most notably is GPU
>>> computing support.
>>>
>>> My daily routine is doing machine learning, which requires GPU for
>>> computing nowadays.
>>
>> I’m currently working on packaging Tensorflow (without GPU support).  I
>> don’t know if Tensorflow with GPU support will work with OpenCL.
> I don't think that any modern GPU will be supported without non-free software. Many of them require blobs for power management and
> instruction scheduling.

That's actually a really good point.  I forgot about that.  Isn't radeon
close to having free drivers?

>
> Tobias Platen
>>
>> --
>> Ricardo
>>
>>
>>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 12:41   ` Ludovic Courtès
@ 2018-04-25 22:38     ` Fis Trivial
  2018-04-26 12:46       ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Fis Trivial @ 2018-04-25 22:38 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel@gnu.org, Joshua Branson


Ludovic Courtès writes:

> Hello,
>
> Joshua Branson <jbranso@fastmail.com> skribis:
>
>> Fis Trivial <ybbs.daans@hotmail.com> writes:
>>
>>> Hi Guixs, this is actually a feature wish.
>>>
>>> I tried to use guix to manage many of my softwares on my system, but
>>> some dependencies are missing which is blocking a full transition to
>>> Guix based system and development environment. Most notably is GPU
>>> computing support.
>>>
>>> My daily routine is doing machine learning, which requires GPU for
>>> computing nowadays. Currently I need to use CUDA from NVidia, as many of
>>> you might know, it's not free software, not even an open source
>>> software. However, it's the de fato toolchain in deep learning
>>> community, so basically it's a must have dependency for most of the
>>> related libraries if you want decent performance. Time passes and
>>> hardwork have been done, now we have some libraries ported to OpenCL or
>>> HIP (from AMD), it's not mature yet but I think we have a pretty good
>>> shot at working them out in near future.
>>
>> Since this is a GNU endorsed distro, guixSD will never have an official
>> way to install or use CUDA.
>
> Indeed.  Specifically, the project is committed to following the FSDG,
> so CUDA doesn’t belong in Guix:
>
>   https://gnu.org/distros/free-system-distribution-guidelines.html
>

Sorry that I didn't make it clear in the original mail. The reason I
talked about CUDA, is to express, that's the one thing I want to get rid
of and replace it with Other free alternatives listed in original mail.
But I need help packaging those free alternatives.

> Free software that you might find of interest is POCL, an OpenCL
> implementation (not yet packaged in Guix):
>
>   https://github.com/pocl/pocl
>

I mentioned it in the original mail. But packaging these thing requires
knowledge for kernel space stuffs, like kernel module for GPU, which I
don't have. So, any help is appreciated.

> Ludo’.

Thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 17:17 ` Ricardo Wurmus
  2018-04-25 18:04   ` Tobias Platen
@ 2018-04-25 22:50   ` Fis Trivial
  1 sibling, 0 replies; 23+ messages in thread
From: Fis Trivial @ 2018-04-25 22:50 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Hi,
>
>> I tried to use guix to manage many of my softwares on my system, but
>> some dependencies are missing which is blocking a full transition to
>> Guix based system and development environment. Most notably is GPU
>> computing support.
>>
>> My daily routine is doing machine learning, which requires GPU for
>> computing nowadays.
>
> I’m currently working on packaging Tensorflow (without GPU support).  I
> don’t know if Tensorflow with GPU support will work with OpenCL.

No, it doesn't. It do support sycl[1]. But again, there's no usable free
implementation of sycl that supports GPU.

[1]: https://www.khronos.org/sycl

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 18:04   ` Tobias Platen
  2018-04-25 22:25     ` Joshua Branson
@ 2018-04-25 22:51     ` Fis Trivial
  1 sibling, 0 replies; 23+ messages in thread
From: Fis Trivial @ 2018-04-25 22:51 UTC (permalink / raw)
  To: Tobias Platen; +Cc: guix-devel@gnu.org


Tobias Platen writes:

> On 25.04.2018 19:17, Ricardo Wurmus wrote:
>>
>> Hi,
>>
>>> I tried to use guix to manage many of my softwares on my system, but
>>> some dependencies are missing which is blocking a full transition to
>>> Guix based system and development environment. Most notably is GPU
>>> computing support.
>>>
>>> My daily routine is doing machine learning, which requires GPU for
>>> computing nowadays.
>>
>> I’m currently working on packaging Tensorflow (without GPU support).  I
>> don’t know if Tensorflow with GPU support will work with OpenCL.
> I don't think that any modern GPU will be supported without non-free
> software. Many of them require blobs for power management and
> instruction scheduling.
>

That would be a really, really bad news.

> Tobias Platen
>>
>> --
>> Ricardo
>>
>>
>>


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 22:25     ` Joshua Branson
@ 2018-04-26  3:18       ` Pierre Neidhardt
  2018-04-26  6:21         ` Jonathan Brielmaier
  0 siblings, 1 reply; 23+ messages in thread
From: Pierre Neidhardt @ 2018-04-26  3:18 UTC (permalink / raw)
  To: Joshua Branson; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 552 bytes --]


Joshua Branson <jbranso@fastmail.com> writes:

> That's actually a really good point.  I forgot about that.  Isn't radeon
> close to having free drivers?

I thought it was entirely free already, isn't it?
To my understanding, it's AMDGPU that is partly proprietary.
According to the latest Phoronix benchmarks, the free Radeon performs
really well.

I don't know about OpenCL though.

-- 
Pierre Neidhardt

Once, I read that a man be never stronger than when he truly realizes how
weak he is.
		-- Jim Starlin, "Captain Marvel #31"

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26  3:18       ` Pierre Neidhardt
@ 2018-04-26  6:21         ` Jonathan Brielmaier
  2018-04-26  6:34           ` Pierre Neidhardt
  2018-04-26  8:04           ` Mark H Weaver
  0 siblings, 2 replies; 23+ messages in thread
From: Jonathan Brielmaier @ 2018-04-26  6:21 UTC (permalink / raw)
  To: guix-devel

On 04/26/2018 05:18 AM, Pierre Neidhardt wrote:
> 
> Joshua Branson <jbranso@fastmail.com> writes:
> 
>> That's actually a really good point.  I forgot about that.  Isn't radeon
>> close to having free drivers?
> 
> I thought it was entirely free already, isn't it?
> To my understanding, it's AMDGPU that is partly proprietary.
> According to the latest Phoronix benchmarks, the free Radeon performs
> really well.

There is a bunch of entirely FOSS drivers for AMD Radeon cards:

Kernel drivers:
radeon: for older cards before GCN1.2 (kernel/drivers/gpu/drm/radeon)
amdgpu: for the new cards since GCN1.2 (kernel/drivers/gpu/drm/amd/amdgpu)

Userspace drivers:
radeonsi: for almost all cards in the last decade (mesa/src/gallium/drivers/radeonsi)
r600: for the ones before (mesa/src/gallium/drivers/r600)

Vulkan drivers:
RADV: written by the community (RedHat etc.), because AMD initially didn't make their Vulkan
userspace FOSS (mesa/src/amd/vulkan)
AMDVLK: AMDs Vulkan driver released as FOSS (https://github.com/GPUOpen-Drivers/AMDVLK)

So your FOSS driver would consist of amdgpu + radeonsi + radv and is in almost all cases the
best choice (performance, stability etc).

Then there was always a propriatary driver by AMD nowadays it's called "Radeon Software for Linux",
which bundles also free software like AMDVLK and ROCm. Other names before were "AMDGPU-PRO", 
"AMD Catalyst" and "fglrx"...

I hope it's now less confusing then before :P
Jonathan

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26  6:21         ` Jonathan Brielmaier
@ 2018-04-26  6:34           ` Pierre Neidhardt
  2018-04-26  8:04           ` Mark H Weaver
  1 sibling, 0 replies; 23+ messages in thread
From: Pierre Neidhardt @ 2018-04-26  6:34 UTC (permalink / raw)
  To: Jonathan Brielmaier; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 86 bytes --]


@Jonathan:  Thanks a lot for this thorough clarification!

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26  6:21         ` Jonathan Brielmaier
  2018-04-26  6:34           ` Pierre Neidhardt
@ 2018-04-26  8:04           ` Mark H Weaver
  2018-04-26  8:36             ` Jonathan Brielmaier
  1 sibling, 1 reply; 23+ messages in thread
From: Mark H Weaver @ 2018-04-26  8:04 UTC (permalink / raw)
  To: Jonathan Brielmaier; +Cc: guix-devel

Hi Jonathan,

Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:

> There is a bunch of entirely FOSS drivers for AMD Radeon cards:
>
> Kernel drivers:
> radeon: for older cards before GCN1.2 (kernel/drivers/gpu/drm/radeon)
> amdgpu: for the new cards since GCN1.2 (kernel/drivers/gpu/drm/amd/amdgpu)
>
> Userspace drivers:
> radeonsi: for almost all cards in the last decade (mesa/src/gallium/drivers/radeonsi)
> r600: for the ones before (mesa/src/gallium/drivers/r600)
>
> Vulkan drivers:
> RADV: written by the community (RedHat etc.), because AMD initially didn't make their Vulkan
> userspace FOSS (mesa/src/amd/vulkan)
> AMDVLK: AMDs Vulkan driver released as FOSS (https://github.com/GPUOpen-Drivers/AMDVLK)
>
> So your FOSS driver would consist of amdgpu + radeonsi + radv and is in almost all cases the
> best choice (performance, stability etc).

What about firmware?  Do we know which AMD Radeon cards, if any, can be
used without including nonfree software in the OS?

A quick web search would seem to suggest that on Debian, it is very
commonly required to install the 'firmware-linux-nonfree' and/or
'firmware-amd-graphics' packages from non-free.

     Thanks,
       Mark

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26  8:04           ` Mark H Weaver
@ 2018-04-26  8:36             ` Jonathan Brielmaier
  2018-04-27  3:31               ` Chris Marusich
  0 siblings, 1 reply; 23+ messages in thread
From: Jonathan Brielmaier @ 2018-04-26  8:36 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

On 26/04/2018 10:04, Mark H Weaver wrote:
> What about firmware?  Do we know which AMD Radeon cards, if any, can be
> used without including nonfree software in the OS?

I'm not aware of an AMD/ATI Radeon card which doesn't need nonfree
firmware. The in-tree firmware in kernel goes back until ATI Radeon
R100[0], out-tree (linux-firmware.git) are all cards who run the amdgpu,
radeon or r600 kernel driver. So no card without nonfree firmware in the
last ~20 years...

There could be some Nvidia cards who doesn't need nonfree firmware
according to [1]. It have to be before Geforce 8000[2].

AFAIK Intel integrated GPUs didn't need nonfree firmware.

[0]
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/firmware/radeon?h=v4.4.129
[1]
https://unix.stackexchange.com/questions/393504/which-amd-ati-cards-dont-require-non-free-firmware-when-using-radeon
[2] https://en.wikipedia.org/wiki/GeForce_8_series

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-25 22:38     ` Fis Trivial
@ 2018-04-26 12:46       ` Ludovic Courtès
  2018-04-26 17:59         ` Fis Trivial
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2018-04-26 12:46 UTC (permalink / raw)
  To: Fis Trivial; +Cc: guix-devel@gnu.org, Joshua Branson

Hello,

Fis Trivial <ybbs.daans@hotmail.com> skribis:

> Ludovic Courtès writes:

[...]

>> Free software that you might find of interest is POCL, an OpenCL
>> implementation (not yet packaged in Guix):
>>
>>   https://github.com/pocl/pocl
>>
>
> I mentioned it in the original mail. But packaging these thing requires
> knowledge for kernel space stuffs, like kernel module for GPU, which I
> don't have. So, any help is appreciated.

Oh sorry, I had overlooked that.

You wrote:

> However, I wanted to manage all of these with guix so that we can have a
> unified dependency tree. Currently there are a few options for OpenCL
> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
> project and the implementation in mesa.
> 
> I tried to package beignet (an old OpenCL runtime from Intel) but it
> wasn't successful due to failed tests (it failed from recognizing
> device).
> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm

Regarding failed tests, I think that tests that expect GPU devices to be
able are likely to fail: it could be that the relevant /dev nodes are
inaccessible to the build users, or, more importantly, it could be that
we’re building on a GPU-less machine such as our build farm.  So these
tests would have to be skipped.

Anyway, I would very much welcome packages in this area!

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26 12:46       ` Ludovic Courtès
@ 2018-04-26 17:59         ` Fis Trivial
  2018-04-29 17:07           ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Fis Trivial @ 2018-04-26 17:59 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel@gnu.org, Joshua Branson



>
> Oh sorry, I had overlooked that.
>

No problem, I really appreciate all the hardwork you have done, thanks. :)

> You wrote:
>
>> However, I wanted to manage all of these with guix so that we can have a
>> unified dependency tree. Currently there are a few options for OpenCL
>> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
>> project and the implementation in mesa.
>> 
>> I tried to package beignet (an old OpenCL runtime from Intel) but it
>> wasn't successful due to failed tests (it failed from recognizing
>> device).
>> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>
> Regarding failed tests, I think that tests that expect GPU devices to be
> able are likely to fail: it could be that the relevant /dev nodes are
> inaccessible to the build users, or, more importantly, it could be that
> we’re building on a GPU-less machine such as our build farm.  So these
> tests would have to be skipped.

I think we might need a better scheme other than skipping tests to
verify the usability of these packages. If we skip tests for OpenCL
runtime, then all the other packages (I promise it will be A LOT) that
depend on it will need to skip their tests, since they won't run without
a proper runtime, resulting in a whole tree of untested packages. And
these thing break easily, due to the fact that they usually rely on
specific version of Clang and LLVM, and many of them still in heavy
development stage.

>
> Anyway, I would very much welcome packages in this area!
>
> Ludo’.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26  8:36             ` Jonathan Brielmaier
@ 2018-04-27  3:31               ` Chris Marusich
  2018-04-30 18:00                 ` Thompson, David
  0 siblings, 1 reply; 23+ messages in thread
From: Chris Marusich @ 2018-04-27  3:31 UTC (permalink / raw)
  To: Jonathan Brielmaier; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1276 bytes --]

Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:

> On 26/04/2018 10:04, Mark H Weaver wrote:
>> What about firmware?  Do we know which AMD Radeon cards, if any, can be
>> used without including nonfree software in the OS?
>
> I'm not aware of an AMD/ATI Radeon card which doesn't need nonfree
> firmware. The in-tree firmware in kernel goes back until ATI Radeon
> R100[0], out-tree (linux-firmware.git) are all cards who run the amdgpu,
> radeon or r600 kernel driver. So no card without nonfree firmware in the
> last ~20 years...
>
> There could be some Nvidia cards who doesn't need nonfree firmware
> according to [1]. It have to be before Geforce 8000[2].
>
> AFAIK Intel integrated GPUs didn't need nonfree firmware.
>
> [0]
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/firmware/radeon?h=v4.4.129
> [1]
> https://unix.stackexchange.com/questions/393504/which-amd-ati-cards-dont-require-non-free-firmware-when-using-radeon
> [2] https://en.wikipedia.org/wiki/GeForce_8_series

Are there any new graphics cards being made today by anybody, which do
not require non-free firmware?  I don't know much about the state of
graphics cards in the GNU/Linux world, but I'm very curious about it.

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-26 17:59         ` Fis Trivial
@ 2018-04-29 17:07           ` Ludovic Courtès
  2018-04-30  0:10             ` Fis Trivial
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2018-04-29 17:07 UTC (permalink / raw)
  To: Fis Trivial; +Cc: guix-devel@gnu.org, Joshua Branson

Hi,

Fis Trivial <ybbs.daans@hotmail.com> skribis:

>>> However, I wanted to manage all of these with guix so that we can have a
>>> unified dependency tree. Currently there are a few options for OpenCL
>>> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
>>> project and the implementation in mesa.
>>> 
>>> I tried to package beignet (an old OpenCL runtime from Intel) but it
>>> wasn't successful due to failed tests (it failed from recognizing
>>> device).
>>> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>>
>> Regarding failed tests, I think that tests that expect GPU devices to be
>> able are likely to fail: it could be that the relevant /dev nodes are
>> inaccessible to the build users, or, more importantly, it could be that
>> we’re building on a GPU-less machine such as our build farm.  So these
>> tests would have to be skipped.
>
> I think we might need a better scheme other than skipping tests to
> verify the usability of these packages. If we skip tests for OpenCL
> runtime, then all the other packages (I promise it will be A LOT) that
> depend on it will need to skip their tests, since they won't run without
> a proper runtime, resulting in a whole tree of untested packages. And
> these thing break easily, due to the fact that they usually rely on
> specific version of Clang and LLVM, and many of them still in heavy
> development stage.

Are you sure?  What I would expect is that packages would be able to use
the OpenCL run-time, they’d even be able to run OpenCL code as part of
their tests, only it would run on the main CPU instead of on GPUs, as if
the machine had no usable GPUs.

Does that make sense?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-29 17:07           ` Ludovic Courtès
@ 2018-04-30  0:10             ` Fis Trivial
  2018-04-30  4:51               ` Fis Trivial
  0 siblings, 1 reply; 23+ messages in thread
From: Fis Trivial @ 2018-04-30  0:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel@gnu.org, Joshua Branson


Ludovic Courtès writes:

> Hi,
>
> Fis Trivial <ybbs.daans@hotmail.com> skribis:
>
>>>> However, I wanted to manage all of these with guix so that we can have a
>>>> unified dependency tree. Currently there are a few options for OpenCL
>>>> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
>>>> project and the implementation in mesa.
>>>>
>>>> I tried to package beignet (an old OpenCL runtime from Intel) but it
>>>> wasn't successful due to failed tests (it failed from recognizing
>>>> device).
>>>> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>>>
>>> Regarding failed tests, I think that tests that expect GPU devices to be
>>> able are likely to fail: it could be that the relevant /dev nodes are
>>> inaccessible to the build users, or, more importantly, it could be that
>>> we’re building on a GPU-less machine such as our build farm.  So these
>>> tests would have to be skipped.
>>
>> I think we might need a better scheme other than skipping tests to
>> verify the usability of these packages. If we skip tests for OpenCL
>> runtime, then all the other packages (I promise it will be A LOT) that
>> depend on it will need to skip their tests, since they won't run without
>> a proper runtime, resulting in a whole tree of untested packages. And
>> these thing break easily, due to the fact that they usually rely on
>> specific version of Clang and LLVM, and many of them still in heavy
>> development stage.
>
> Are you sure?  What I would expect is that packages would be able to use
> the OpenCL run-time, they’d even be able to run OpenCL code as part of
> their tests, only it would run on the main CPU instead of on GPUs, as if
> the machine had no usable GPUs.
>
> Does that make sense?
>
> Thanks,
> Ludo’.

In most of the time, we have two way to run these packages on CPU, For
the first one:

Most of the packages have a CPU backend and an OpenCL backend,
implementing same algorithms twice, so when OpenCL device is not
available, they will run on their CPU backend. And the normal testing
scheme for these packages is doing the same tests for each backend, but
do them independently. So, if we were to put these packages in Guix, we
could run the tests for CPU backend.

For the second one:

OpenCL implementations (the compiler) have a fall back mode, which means
they can treat CPU as the device and compile OpenCL code to run it on
CPU. I think this is what you meant by the line "run OpenCL code as part
of their tests". This feature is provided by the OpenCL compiler, which
we currently can't test.

I'm still trying to package a basic OpenCL stack. And I did success in
run some very primitive tests from myself outside of the store. But
still, there are a lots of stuffs I need to learn.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-30  0:10             ` Fis Trivial
@ 2018-04-30  4:51               ` Fis Trivial
  0 siblings, 0 replies; 23+ messages in thread
From: Fis Trivial @ 2018-04-30  4:51 UTC (permalink / raw)
  To: Fis Trivial; +Cc: guix-devel@gnu.org, Joshua Branson


Fis Trivial writes:

> Ludovic Courtès writes:
>
>> Hi,
>>
>> Fis Trivial <ybbs.daans@hotmail.com> skribis:
>>
>>>>> However, I wanted to manage all of these with guix so that we can have a
>>>>> unified dependency tree. Currently there are a few options for OpenCL
>>>>> runtime. Namely, beignet, neo from Intel, ROCm stack from AMD, the POCL
>>>>> project and the implementation in mesa.
>>>>>
>>>>> I tried to package beignet (an old OpenCL runtime from Intel) but it
>>>>> wasn't successful due to failed tests (it failed from recognizing
>>>>> device).
>>>>> https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm
>>>>
>>>> Regarding failed tests, I think that tests that expect GPU devices to be
>>>> able are likely to fail: it could be that the relevant /dev nodes are
>>>> inaccessible to the build users, or, more importantly, it could be that
>>>> we’re building on a GPU-less machine such as our build farm.  So these
>>>> tests would have to be skipped.
>>>
>>> I think we might need a better scheme other than skipping tests to
>>> verify the usability of these packages. If we skip tests for OpenCL
>>> runtime, then all the other packages (I promise it will be A LOT) that
>>> depend on it will need to skip their tests, since they won't run without
>>> a proper runtime, resulting in a whole tree of untested packages. And
>>> these thing break easily, due to the fact that they usually rely on
>>> specific version of Clang and LLVM, and many of them still in heavy
>>> development stage.
>>
>> Are you sure?  What I would expect is that packages would be able to use
>> the OpenCL run-time, they’d even be able to run OpenCL code as part of
>> their tests, only it would run on the main CPU instead of on GPUs, as if
>> the machine had no usable GPUs.
>>
>> Does that make sense?
>>
>> Thanks,
>> Ludo’.
>
> In most of the time, we have two way to run these packages on CPU, For
> the first one:
>
> Most of the packages have a CPU backend and an OpenCL backend,
> implementing same algorithms twice, so when OpenCL device is not
> available, they will run on their CPU backend. And the normal testing
> scheme for these packages is doing the same tests for each backend, but
> do them independently. So, if we were to put these packages in Guix, we
> could run the tests for CPU backend.
>
> For the second one:
>
> OpenCL implementations (the compiler) have a fall back mode, which means
> they can treat CPU as the device and compile OpenCL code to run it on
> CPU. I think this is what you meant by the line "run OpenCL code as part
> of their tests". This feature is provided by the OpenCL compiler, which
> we currently can't test.
>
> I'm still trying to package a basic OpenCL stack. And I did success in
> run some very primitive tests from myself outside of the store. But
> still, there are a lots of stuffs I need to learn.

And to make things more complicated, developers can choose platforms(the
implementations), device at runtime, if the package developers choose to
run the code with GPU, then falling back to CPU won't happen. I'm
thinking putting tests executable as a separated output for those who
want to run tests. But simply copying executable files will result in
wrong rpath, which is another thing I don't know how to deal with.

Currently, using clinfo (A little utility used to display information
about existing OpenCL vendor information) to display information about
*beignet* and *pocl* is working, which means calling basic functions
with packages in the store is working. You can check the code
in (or would it be more convenient if I open a bug report and drop the
code there?):

https://github.com/trivialfis/guixpkgs/blob/master/opencl.scm

I also put a readme file in that repository.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Have GPGPU support in guix?
  2018-04-27  3:31               ` Chris Marusich
@ 2018-04-30 18:00                 ` Thompson, David
  0 siblings, 0 replies; 23+ messages in thread
From: Thompson, David @ 2018-04-30 18:00 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel

On Thu, Apr 26, 2018 at 11:31 PM, Chris Marusich <cmmarusich@gmail.com> wrote:
> Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:
>
>> On 26/04/2018 10:04, Mark H Weaver wrote:
>>> What about firmware?  Do we know which AMD Radeon cards, if any, can be
>>> used without including nonfree software in the OS?
>>
>> I'm not aware of an AMD/ATI Radeon card which doesn't need nonfree
>> firmware. The in-tree firmware in kernel goes back until ATI Radeon
>> R100[0], out-tree (linux-firmware.git) are all cards who run the amdgpu,
>> radeon or r600 kernel driver. So no card without nonfree firmware in the
>> last ~20 years...
>>
>> There could be some Nvidia cards who doesn't need nonfree firmware
>> according to [1]. It have to be before Geforce 8000[2].
>>
>> AFAIK Intel integrated GPUs didn't need nonfree firmware.
>>
>> [0]
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/firmware/radeon?h=v4.4.129
>> [1]
>> https://unix.stackexchange.com/questions/393504/which-amd-ati-cards-dont-require-non-free-firmware-when-using-radeon
>> [2] https://en.wikipedia.org/wiki/GeForce_8_series
>
> Are there any new graphics cards being made today by anybody, which do
> not require non-free firmware?  I don't know much about the state of
> graphics cards in the GNU/Linux world, but I'm very curious about it.

I'm not aware of a single new GPU that fits the bill. Last year I
bought the most recent NVIDIA GPU I could find that works blob-free
with nouveau drivers, the GTX 770. That will last me awhile but I
don't know what I will do when it becomes too weak to handle modern
software. Furthermore, I don't know what to do when my Thinkpad X220
and it's aging Intel GPU are no longer good enough, since all new
Intel GPUs also require firmware blobs. The future looks bleak.

- Dave

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2018-04-30 18:00 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-24 23:22 Have GPGPU support in guix? Fis Trivial
2018-04-24 23:29 ` Joshua Branson
2018-04-24 23:32   ` Fis Trivial
2018-04-24 23:46     ` Joshua Branson
2018-04-25 12:41   ` Ludovic Courtès
2018-04-25 22:38     ` Fis Trivial
2018-04-26 12:46       ` Ludovic Courtès
2018-04-26 17:59         ` Fis Trivial
2018-04-29 17:07           ` Ludovic Courtès
2018-04-30  0:10             ` Fis Trivial
2018-04-30  4:51               ` Fis Trivial
2018-04-25 17:17 ` Ricardo Wurmus
2018-04-25 18:04   ` Tobias Platen
2018-04-25 22:25     ` Joshua Branson
2018-04-26  3:18       ` Pierre Neidhardt
2018-04-26  6:21         ` Jonathan Brielmaier
2018-04-26  6:34           ` Pierre Neidhardt
2018-04-26  8:04           ` Mark H Weaver
2018-04-26  8:36             ` Jonathan Brielmaier
2018-04-27  3:31               ` Chris Marusich
2018-04-30 18:00                 ` Thompson, David
2018-04-25 22:51     ` Fis Trivial
2018-04-25 22:50   ` Fis Trivial

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).