[gelöst] amdgpu Treiber mit RX7800XT und OpenCL

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

[gelöst] amdgpu Treiber mit RX7800XT und OpenCL

Beitrag von reox » 11.10.2023 22:08:19

Ich habe eine AMD RX 7800 XT eingebaut und die neuste Firmware aus dem Kernel Repo bezogen. Das bringt mir jetzt zwar klasse Spiele Performance, aber leider kein OpenCL - was ich eigentlich viel lieber hätte.
Angeblich soll es reichen die Pakete Debianocl-icd-libopencl1 Debianmesa-opencl-icd zu installieren, allerdings meldet mir der darktable-cltest:

Code: Alles auswählen

$ darktable-cltest
     0.0268 [dt_get_sysresource_level] switched to 1 as `default'
     0.0268   total mem:       64206MB
     0.0269   mipmap cache:    8025MB
     0.0269   available mem:   32103MB
     0.0269   singlebuff:      501MB
     0.0269   OpenCL tune mem: OFF
     0.0269   OpenCL pinned:   OFF
[opencl_init] opencl related configuration options:
[opencl_init] opencl: ON
[opencl_init] opencl_scheduling_profile: 'default'
[opencl_init] opencl_library: 'default path'
[opencl_init] opencl_device_priority: '*/!0,*/*/*'
[opencl_init] opencl_mandatory_timeout: 200
[opencl_init] opencl library 'libOpenCL' found on your system and loaded
[opencl_init] found 2 platforms
[opencl_init] no devices found for Mesa/X.org (vendor) - rusticl (name)
[opencl_init] found 1 device

[dt_opencl_device_init]
   DEVICE:                   0: 'AMD Radeon Graphics (gfx1101, LLVM 15.0.6, DRM 3.52, 6.4.0-0.deb12.2-amd64)'
   PLATFORM NAME & VENDOR:   Clover, Mesa
   CANONICAL NAME:           cloveramdradeongraphics
   DRIVER VERSION:           22.3.6
   DEVICE VERSION:           OpenCL 1.1 Mesa 22.3.6
   DEVICE_TYPE:              GPU
   *** insufficient device version ***
[opencl_init] no suitable devices found.
[opencl_init] FINALLY: opencl is NOT AVAILABLE and NOT ENABLED.
Nun lese ich in diesem Blogpost: https://math.dartmouth.edu/~sarunas/amdgpu-opencl.html dass man irgendwelche Pakete von AMD installieren muss?
Ich hab das einfach mal getestet, funktionieren tut es dennoch nicht.
clinfo liefert mir zwar einige Daten aber das bauen des Testprogramms schlägt wohl fehl:

Code: Alles auswählen

$ clinfo
Number of platforms:                             3
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 1.1 Mesa 22.3.6
  Platform Name:                                 Clover
  Platform Vendor:                               Mesa
  Platform Extensions:                           cl_khr_icd
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 3.0 
  Platform Name:                                 rusticl
  Platform Vendor:                               Mesa/X.org
  Platform Extensions:                           cl_khr_icd
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 2.1 AMD-APP (3590.0)
  Platform Name:                                 AMD Accelerated Parallel Processing
  Platform Vendor:                               Advanced Micro Devices, Inc.
  Platform Extensions:                           cl_khr_icd cl_amd_event_callback 


  Platform Name:                                 Clover
Number of devices:                               1
  Device Type:                                   CL_DEVICE_TYPE_GPU
  Vendor ID:                                     1002h
  Max compute units:                             60
  Max work items dimensions:                     3
    Max work items[0]:                           256
    Max work items[1]:                           256
    Max work items[2]:                           256
  Max work group size:                           256
  Preferred vector width char:                   16
  Preferred vector width short:                  8
  Preferred vector width int:                    4
  Preferred vector width long:                   2
  Preferred vector width float:                  4
  Preferred vector width double:                 2
  Native vector width char:                      16
  Native vector width short:                     8
  Native vector width int:                       4
  Native vector width long:                      2
  Native vector width float:                     4
  Native vector width double:                    2
  Max clock frequency:                           2213Mhz
  Address bits:                                  64
  Max memory allocation:                         4294967296
  Image support:                                 No
  Max size of kernel argument:                   1024
  Alignment (bits) of base address:              32768
  Minimum alignment (bytes) for any datatype:    128
  Single precision floating point capability
    Denorms:                                     No
    Quiet NaNs:                                  Yes
    Round to nearest even:                       Yes
    Round to zero:                               No
    Round to +ve and infinity:                   No
    IEEE754-2008 fused multiply-add:             No
  Cache type:                                    None
  Cache line size:                               0
  Cache size:                                    0
  Global memory size:                            17179869184
  Constant buffer size:                          67108864
  Max number of constant args:                   16
  Local memory type:                             Scratchpad
  Local memory size:                             65536
ERROR: clBuildProgram(-11)


Fehlt mir da noch irgendwas? Ist darktable/irgendwas anderes zu alt?

Den Kernel hab ich schon aus den Backports:

Code: Alles auswählen

$ uname -a
Linux helios 6.4.0-0.deb12.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.4.4-3~bpo12+1 (2023-08-08) x86_64 GNU/Linux
Zuletzt geändert von reox am 12.10.2023 19:05:23, insgesamt 1-mal geändert.

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: amdgpu Treiber mit RX7800XT und OpenCL

Beitrag von reox » 12.10.2023 11:01:55

Also meine Vermutung ist, dass mir dieser ROCm nichts bringt. Jedenfalls listet AMD meine GPU dort gar nicht als kompatibel :D

Ich vermute weiters, das mir Debianmesa-opencl-icd aus testing helfen könnte - dort ist Version 23 drin, evt hilft das... Allerdings ist ein update von bookworm auf trixie für mich gerade nicht möglich, da er mir einige Pakete deinstallieren will, die ich eigentlich brauche... Ohne es genau analysiert zu haben, schaut es so aus als ob Abhängikeiten in trixie (noch) nicht erfüllt sind.

edit: Ich hab mesa-opencl-icd aus testing geholt und auch den testing kernel dazu. Aber das ändert nichts daran, dass es nicht geht. Interessanterweise unterstützt ROCm für Windows offenbar mehr Radeon Karten, aber auch dort ist die 7800 XT nicht darunter.
clinfo aus Debian zeigt ein wenig eine andere Ausgabe und meint es findet eine Datei nicht: /usr/lib/clc/gfx1101-amdgcn-mesa-mesa3d.bc - scheint so als wäre im Debianlibclc-16-dev auch noch keine Kompatabilität für die GPU drin (gfx1101 scheint der codename für die RX7800XT zu sein, bzw für den Navi 32 Chip).
clinfo: NoPaste-Eintrag41981

Scheint also wirklich so, als ob die Karte vom mesa icd zwar erkannt aber nicht unterstützt ist?

editedit: Hab mal zum testen ein Arch hochgezogen und die rocm treiber von dort installiert. Tatsächlich geht es etwas weiter aber darktable-cltest crasht dann: NoPaste-Eintrag41982

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: amdgpu Treiber mit RX7800XT und OpenCL

Beitrag von reox » 12.10.2023 19:05:10

Ok ich bin wohl immer noch ein noob und hätte mal besser RTFM :facepalm:

Um ROCm zu nutzen, muss der Nutzer in der render und video gruppe sein: https://rocm.docs.amd.com/en/latest/dep ... for-groups
Tjo, das war ich leider nicht...

Zur Sicherheit hab ich den mesa-opencl-icd auch noch deinstalliert und siehe da, dann tut der ROCm auch problemlos.

Antworten