staging.inyokaproject.org

Intel B580 und opencl

Status: Gelöst | Ubuntu-Version: Xubuntu 24.04 (Noble Numbat)
Antworten |

glaskugel

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3849

Ich würde gerne mit 24.04.2 opencl mit einer Intel B580 nutzen. Brauche ich dafür einen speziellen propr. Treiber? Angeboten wird mir nichts zu installieren.

Kernel ist aktualisiert auf 6.11.0

Ich habe noch eine Diskussion bei https://forums.linuxmint.com/viewtopic.php?t=441848 mit Mint gefunden, half mir aber auch nicht, außer, dass sich mit 26.04 wohl einige Verbesserungen geben wird. Gelesen habe ich auch, dass es mit Debian Sid gut funktionieren soll.

$ lspci -nnk | grep -A3 "\[03..\]:" 
03:00.0 VGA compatible controller [0300]: Intel Corporation Device [8086:e20b]
	Subsystem: ASRock Incorporation Device [1849:6021]
	Kernel driver in use: xe
	Kernel modules: xe
--
14:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:13c0] (rev c2)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7e62]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

Ich greife auf den PC via ssh zu:

$ xrandr --prop 
Can't open display 
$ clinfo
Number of platforms                               0

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.3.2
  ICD loader Profile                              OpenCL 3.0
~# lshw -c video
  *-display                 
       Beschreibung: VGA compatible controller
       Produkt: Intel Corporation
       Hersteller: Intel Corporation
       Physische ID: 0
       Bus-Informationen: pci@0000:03:00.0
       Logischer Name: /dev/fb0
       Version: 00
       Breite: 64 bits
       Takt: 33MHz
       Fähigkeiten: pciexpress msi pm vga_controller bus_master cap_list rom fb
       Konfiguration: depth=32 driver=xe latency=0 resolution=1920,1200
       Ressourcen: iomemory:f80-f7f irq:169 memory:f4000000-f4ffffff memory:f800000000-fbffffffff memory:f5000000-f51fffff
  *-display
       Beschreibung: VGA compatible controller
       Produkt: Advanced Micro Devices, Inc. [AMD/ATI]
       Hersteller: Advanced Micro Devices, Inc. [AMD/ATI]
       Physische ID: 0
       Bus-Informationen: pci@0000:14:00.0
       Version: c2
       Breite: 64 bits
       Takt: 33MHz
       Fähigkeiten: pm pciexpress msi msix vga_controller bus_master cap_list
       Konfiguration: driver=amdgpu latency=0
       Ressourcen: iomemory:fc0-fbf irq:130 memory:fc10000000-fc1fffffff memory:f6000000-f61fffff ioport:f000(Größe=256) memory:f6500000-f657ffff
~# lspci -nnk | egrep -i --color 'vga|3d|2d' -A3 | grep 'in use'
	Kernel driver in use: xe
	Kernel driver in use: amdgpu

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5232

Mindestens PoCL sollte funktionieren. Intel sollte auch über Clover funktionieren. AMD vielleicht über Rusticl. Oder aber man installiert für AMD ROCm.

Die jeweils passenden opencl-icd Pakete müssen installiert sein.

hakel2022

Anmeldungsdatum:
21. Februar 2022

Beiträge: 3254

Gelesen habe ich auch

Das ist alles ziemlich in Bewegung. AMD hat dafür ja z.B. eine "schöne" Matrix.

Grundsätzlich sollten 2 parallele GraKas ja funktionieren mit den freien Treibern, ob das in der Praxis eine gute Idee ist?

Bei B580 sind vermutlich die Zwischenversionen hilfreich. Da soll es durchaus Fortschritte geben.

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3849

Die Frage nach opencl bezieht sich auf Intel. Mit AMD macht das nicht viel Sinn und ich kann zumindest vorübergehend auch die AMD-GPU (CPU) deaktivieren, die ist im UEFI auf Auto.

Ich habe jetzt was gefunden, das weiterhilft:

https://dgpu-docs.intel.com/driver/client/overview.html Using Ubuntu 24.04 with Lunar Lake or Battlemage requires your system to be running the hardware enablement (HWE) kernel. By default, Ubuntu Desktop 24.04 tracks the HWE stack. However, if your system is instead using the general availability (GA) kernel, you must switch to the HWE kernel before proceeding with the Client GPU installation.

Wie frage ich ab, ob gerade ein HWE-Kernel genutzt wird?

$ uname -a
Linux sv 6.11.0-29-generic #29~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jun 26 14:16:59 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Installiert ist HWE:

~$ dpkg -l | grep linux-image
ii  linux-image-6.11.0-29-generic                  6.11.0-29.29~24.04.1                       amd64        Signed kernel image generic
ii  linux-image-generic-hwe-24.04                  6.11.0-29.29~24.04.1                       amd64        Generic Linux kernel image

Dann brauche ich noch ein ppa.

sudo add-apt-repository -y ppa:kobuk-team/intel-graphics

Und dann brauche ich auf jeden Fall intel-opencl-icd

Diese Version hätte ich ohne ppa.

$ apt search intel-opencl-icd
Sortierung… Fertig
Volltextsuche… Fertig
intel-opencl-icd/noble 23.43.27642.40-1ubuntu3 amd64
  Intel graphics compute runtime for OpenCL

Das ppa liefert:

~# apt search intel-opencl-icd
Sortierung… Fertig
Volltextsuche… Fertig
intel-opencl-icd/noble 25.22.33944.12-1~24.04~ppa1 amd64
  Intel graphics compute runtime for OpenCL

Kann man linux-image-6.11.0-29-generic entfernen und den hwe lassen?

~# apt remove linux-image-6.11.0-29-generic
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  amd64-microcode bpfcc-tools bpftrace intel-microcode iucode-tool libbpfcc
  libclang-cpp18 libclang1-18 libllvm18 linux-headers-generic-hwe-24.04
  python3-bpfcc python3-netaddr thermald ubuntu-kernel-accessories
Verwenden Sie »apt autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
  linux-generic-hwe-24.04 linux-image-6.11.0-29-generic
  linux-image-generic-hwe-24.04
0 aktualisiert, 0 neu installiert, 3 zu entfernen und 3 nicht aktualisiert.
Nach dieser Operation werden 15,4 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] n

Macht diese Konfiguration in /etc/default/grub Sinn? Muss ich dann nach jedem Update 1x manuell starten?

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Ich habe es jetzt einfach mal probiert, ohne sicher zu sein, dass der hwe-Kernel verwendet wird.

sudo add-apt-repository -y ppa:kobuk-team/intel-graphics

sudo apt-get install -y libze-intel-gpu1 libze1 intel-metrics-discovery intel-opencl-icd clinfo intel-gsc

sudo apt-get install -y intel-media-va-driver-non-free libmfx-gen1 libvpl2 libvpl-tools libva-glx2 va-driver-all vainfo

Ohne Reboot:

~# clinfo | grep "Device Name"
  Device Name                                     Intel(R) Arc(TM) B580 Graphics
    Device Name                                   Intel(R) Arc(TM) B580 Graphics
    Device Name                                   Intel(R) Arc(TM) B580 Graphics
    Device Name                                   Intel(R) Arc(TM) B580 Graphics

Komplettes clinfo im Anhang.

Nach Neustart:

$ darktable-cli setubal.orf setubal.orf.xmp test.jpg --core -d perf -d opencl
output file already exists, it will get renamed
darktable 5.2.0
Copyright (C) 2012-2025 Johannes Hanika and other contributors.

Compile options:
  Bit depth              -> 64 bit
  Debug                  -> DISABLED
  SSE2 optimizations     -> ENABLED
  OpenMP                 -> ENABLED
  OpenCL                 -> ENABLED
  Lua                    -> ENABLED  - API version 9.5.0
  Colord                 -> ENABLED
  gPhoto2                -> ENABLED
  OSMGpsMap              -> ENABLED  - map view is available
  GMIC                   -> ENABLED  - Compressed LUTs are supported
  GraphicsMagick         -> ENABLED
  ImageMagick            -> DISABLED
  libavif                -> DISABLED
  libheif                -> ENABLED
  libjxl                 -> ENABLED
  LibRaw                 -> ENABLED  - Version 0.22.0-Devel202502
  OpenJPEG               -> ENABLED
  OpenEXR                -> ENABLED
  WebP                   -> ENABLED

See https://www.darktable.org/resources/ for detailed documentation.
See https://github.com/darktable-org/darktable/issues/new/choose to report bugs.

     0.0281 [opencl_init] opencl disabled via darktable preferences
     0.0281 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL'
     0.0282 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL.so'
     0.0282 [opencl_init] opencl library 'libOpenCL.so.1' found on your system and loaded, preference 'default path'
     0.0319 [opencl_init] 0 platforms detected, error: Unknown OpenCL error
     0.0319 [opencl_init] FINALLY: opencl PREFERENCE=OFF is NOT AVAILABLE and NOT ENABLED.

clinfo_b580.txt.tar.gz (4.2 KiB)
Download clinfo_b580.txt.tar.gz

glaskugel

(Themenstarter)

Anmeldungsdatum:
8. Juli 2010

Beiträge: 3849

Also ich habe jetzt versucht die AMD-GPU im UEFI zu deaktivieren, aber:

~$ lspci -nnk | egrep -i --color 'vga|3d|2d' -A3 | grep 'in use'
	Kernel driver in use: xe
	Kernel driver in use: amdgpu

Jetzt sieht das nach einer Darktable Konfiguration aus. Man muss auch aufpassen, dass darktable opencl von der B580 verwendet und nicht von der AMD-GPU.

0.1560 [opencl_init] FINALLY: opencl PREFERENCE=OFF is AVAILABLE and NOT ENABLED.

Problem ist nur, dass ich sehr viel via ssh mache und der PC ganz wo anders ist.

Ich setzte jetzt mal auf gelöst. Ich denke der Rest ist eine Darktable-Sache.

PS: habe jetzt:

0.1599 [opencl_init] FINALLY: opencl PREFERENCE=ON is AVAILABLE and ENABLED.
...
     3.4343 [opencl_profiling] spent  0.0060 seconds in write_back
     3.4343 [opencl_profiling] spent  0.0063 seconds in colorout
     3.4343 [opencl_profiling] spent  1.9524 seconds totally in command queue (with 0 events missing)
     3.4343 [dev_process_export] pixel pipeline processing took 2.408 secs (3.537 CPU)
     3.9460 [export_job] exported to `test_05.jpg'
 [opencl_summary_statistics] device 'Intel(R) OpenCL Graphics Intel(R) Arc(TM) B580 Graphics' id=0: 262 out of 262 events were successful and 0 events lost. max event=261

Um Vergleich dazu ohne opencl mit dem AMD Ryzen 9 9900X 12-Core Processor

$ darktable-cli setubal.orf setubal.orf.xmp test.jpg --core --disable-opencl -d perf
...
     6.2751 [dev_process_export] pixel pipeline processing took 5.430 secs (106.498 CPU)
     6.7956 [export_job] exported to `test_06.jpg'

Jetzt muss ich nur mehr herausfinden, warum das unter Debian Sid viel schneller ist. Liegt es bei mir vielleicht am HWE-Kernel?

Vgl. https://math.dartmouth.edu/~sarunas/darktable_bench.html

Tests with 50 Mpx RAW setubal.orf and darktable 4.2+ Ich habe mit 5.2 getestet.

Ryzen 7 9700X 8C/16T @5.4GHz, 32GB @6.4GT/s RAM, X870, Linux 6.12.20, Debian Sid 2025.03.31 (hilbert)

“pixel pipeline processing” time (average of 3 runs), 1.4s

Antworten |