AMD-Grafikkarten unter Linux: Treiber, OpenCL, BOINC, amdconfig und headless per ssh

Scheint fast so.

OK, es läuft zwar, die VII rechnet Milkyway.
Aber das amdgpu-utils zum undervolten funktioniert nicht mehr. Hängt sich einfach auf, wenn ich was ändere und mittel "save" in die GPU schreiben will.
Damit wird die Karte heiß und laut.

Mal abgesehen davon hat auch der Boinc-Managr eine Meise. Er verbindet sich nicht mehr mit dem Client. Erst wenn ich ein neues BM-Fenster aus dem bereits geöffneten BM aufmache, kann ich mich damit dann mit dem client verbinden. Und das ist immer der Fall, nach jedem Reboot.
 
@eiernacken1983

Du kannst dir den älteren Kernel folgendermaßen installieren, wenn er nicht eh noch drauf ist:
sudo apt install linux-image-5.4.0-54-generic linux-headers-5.4.0-54 linux-headers-5.4.0-54-generic

Im Neustart dann nach dem BIOS mal ESC drücken oder so damit das Ubuntubootmenü erscheint, dort dann den älteren Kernel wählen und booten
Doppelposting wurde automatisch zusammengeführt:

Scheint fast so.

OK, es läuft zwar, die VII rechnet Milkyway.
Aber das amdgpu-utils zum undervolten funktioniert nicht mehr. Hängt sich einfach auf, wenn ich was ändere und mittel "save" in die GPU schreiben will.
Damit wird die Karte heiß und laut.
Startest du gpu-pac mit --execute_pac?

Mal abgesehen davon hat auch der Boinc-Managr eine Meise. Er verbindet sich nicht mehr mit dem Client. Erst wenn ich ein neues BM-Fenster aus dem bereits geöffneten BM aufmache, kann ich mich damit dann mit dem client verbinden. Und das ist immer der Fall, nach jedem Reboot.
Du kannst mal versuchen die BOINC Manager Konfiguration zu löschen:
rm ~/'.BOINC Manager'
 
Startest du gpu-pac mit --execute_pac?
Ja. Aber es scheint nicht beachtet zu werden, da jede Menge Dateien pac_writer_6a1c252fa66c4b90a8070221aedf5d6b.sh o.ä. geschrieben werden, statt das Kommando direkt auszuführen.

Andere Frage. wenn ich grub update, kommt:
Code:
Sourcing file `/etc/default/grub.d/init-select.cfg'
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-58-generic
Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-54-generic
initrd-Abbild gefunden: /boot/initrd.img-5.4.0-54-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Windows 10 auf /dev/sda1 gefunden

Dabei habe ich doch aber die -58 gelöscht. Und wenn ich das noch mal purge kommt auch, dass -58 gar nicht da ist.
Wird ein Booten nun noch funktionionieren? (ich warte vorsichtshalber damit...)
Ich hab grub-update nur noch mal laufen lassen, falls der für PAC nötige Boot-Parameter beim purgen verloren gegangen ist.
 
Zuletzt bearbeitet:
Hallo,

ich bin mir nicht sicher, ob für den konkreten Verwendungszweck die Kombination von Mesa-Standardgrafikkartentreiber und OpenCL aus dem AMD-Treiberpaket 20.40 (amdgpu-pro-20.40-1147286-ubuntu-20.04.tar.xz) funktioniert, da ich selbst BOINC nicht nutze.
Bei mir läuft die vorgenannte Treiberkombination auf einem Ryzen 5 3600 mit Radeon RX 560 unter Linux Mint 20 für die Verwendung von OpenCL in Darktable ohne Probleme.

Vielleicht ist die Information aber aber auch für den Verwendungszweck BOINC interessant, weshalb ich einen älteren Beitrag von mir aus einem anderen Thread an dieser Stelle ausnahmsweise leicht verändert zitiere.

Wer es - z.B. zwecks Stressvermeidung mit dem Installationsskript - ausprobieren möchte benötigt aus dem vorgenannten Treiberpaket lediglich die nachstehenden Teilpakete, die in der angegebenen Reihenfolge installiert werden müssen:


  1. amdgpu-core_20.40-1147286_all.deb
  2. amdgpu-pro-core_20.40-1147286_all.deb
  3. libdrm2-amdgpu_2.4.100-1147286_amd64.deb
  4. libdrm-amdgpu-common_1.0.0-1147286_all.deb
  5. libdrm-amdgpu-amdgpu1_2.4.100-1147286_amd64.deb
  6. opencl-orca-amdgpu-pro-icd_20.40-1147286_amd64.deb
  7. ocl-icd-libopencl1-amdgpu-pro_20.40-1147286_amd64.deb
  8. clinfo-amdgpu-pro_20.40-1147286_amd64.deb
... dann sollte OpenCL funktionieren ... wie gesagt, ob auch mit BOINC kann ich leider nicht beurteilen.

Gruß,
vnt
 
Jetzt hab ich mir zusätzlich zu amdgpu-utils mal noch rickslab-utils installiert (per apt) - aber das stürzt ebenfalls beim Schreiben ab.
Doppelposting wurde automatisch zusammengeführt:

ich bin mir nicht sicher, ob für den konkreten Verwendungszweck die Kombination von Mesa-Standardgrafikkartentreiber und OpenCL aus dem AMD-Treiberpaket 20.40 (amdgpu-pro-20.40-1147286-ubuntu-20.04.tar.xz) funktioniert,
Mehr als den OpenCL-Teil des Treiber installiere ich sowieso nicht.
 
Andere Frage. wenn ich grub update, kommt:
Code:
Sourcing file `/etc/default/grub.d/init-select.cfg'
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-58-generic
Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-54-generic
initrd-Abbild gefunden: /boot/initrd.img-5.4.0-54-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Windows 10 auf /dev/sda1 gefunden

Dabei habe ich doch aber die -58 gelöscht. Und wenn ich das noch mal purge kommt auch, dass -58 gar nicht da ist.
Wird ein Booten nun noch funktionionieren? (ich warte vorsichtshalber damit...)
Ich hab grub-update nur noch mal laufen lassen, falls der für PAC nötige Boot-Parameter beim purgen verloren gegangen ist.

Du kannst mal mit dpkg nach Resten suchen:
dpkg -l | grep "5.4.0-58"
Doppelposting wurde automatisch zusammengeführt:

Jetzt hab ich mir zusätzlich zu amdgpu-utils mal noch rickslab-utils installiert (per apt) - aber das stürzt ebenfalls beim Schreiben ab.
Und wenn du die erstellten Skripte einfach auf der CLI ausführst?
Nachdem ich meine Settings gefunden hate rufe ich das damit erzeugte Skript nur noch nach dem Systemstart auf und brauche die GUI schon lange nicht mehr...
 
Wird ein Booten nun noch funktionionieren? (ich warte vorsichtshalber damit...)
Natürlich funktioniert es NICHT.
Keine Ahnung, wieso grub denkt, da wäre noch der -58 irgendwo.
Mal sehen, ob ich den Eintrag manuell entfernen kann.
Auch nach einem reboot funktioniert PAC nicht mehr. Aber für heute höre ich erstmal auf.
Doppelposting wurde automatisch zusammengeführt:

Du kannst mal versuchen die BOINC Manager Konfiguration zu löschen:
Danach startete der BM gar nicht mehr. Nur noch über console mit sudo.
Nach einem Reboot konnte ich ihn zwar starten, aber das Problem besteht weiter, dass er sich nur über ein neues Fenster verbindet.
 
Zuletzt bearbeitet:
Hmm, der BOINC Manager (boincmgr) braucht ja kein sudo an sich, mit sudo würde er ja im Kontext von root laufen.

Guck mal nach den den 58er Resten mit dpkg -l | grep "5.4.0-58"
 
Die 58er Reste waren noch in /boot/
Nun sind sie weg.

Wenn sich der BM manchmal nicht öffnet, dann schaue ich, ob es mit sudo geht. Das geht dann fast immer. Und manchmal geht es danach auch wieder ohne. Da die SSD ohnehin miserabel aufgeteilt ist, werde ich wohl sowieso bald eine Neuinstallation machen müssen.
 
Hmm, zum boincmgr fällt mir kaum was ein, höchstens nochmal checken ob da nicht noch boincmgr Zombies im Hintergrund irgendwo hängen...
 
Nach einem Neustart sollten eigentlich keine Zombies da sein.
Ich boote, ich starte den BM, alles ist leer.
 
Achso, ja nachm Neustart natürlich nicht, sorry :-(
 
Nochmal für Doofe: das Problem ist, dass ich schon einen Kernel oberhalb von 5.4 drauf habe? Ich habe eine neue Installation mit 20.04.1 LTS gemacht. Da ist doch der Kernel 5.4 drauf. Liegt demnach der "Fehler" darin, dass ich nach erstem Boot Auto-Update zugelassen habe? Wäre die einfache Variante dann, Ubuntu neu zu installieren und Auto Update aus zu lassen? Alles andere hier mit purgen etc. ist mir noch zu hoch *noahnung*
 
Kernel 5.4 ist korrekt, Ubuntu bringt aber immer mal wieder kleine Korrekturen, hier zB. die Releases 5.4.0-56 bis 5.4.0-58.
Irgendwas hat sich da eingeschlichten (Kernelsymbole haben sich geändert) so dass die Treiberkompilation fehlschlägt. AMD hatte daher für den Treiber 20.45 einen Fix integriert, damit dieser auch gegen die geänderten Symbole kompiliert. Für den älteren Treiber 20.40 gab es diesen Fix nicht, demnach hilft es nur auf die ältere Kernelversion zurückzugehen.

Ggf. die Installation auch mal mit --no-dkms probieren.
 
Keine Ahnung, was ihr hier treibt *noahnung* aber irgendwie habe ich den Verdacht, dass ihr mir Linux austreiben wollt.
Ich werde dann wohl nur solche PCs umstellen, die CPU-only angedacht sind.
Alles, was GPU rechnen soll, muss halt auf Win10 bleiben.
 
Ich bin wieder auf 20.45 gegangen. Da muss MilkyWay erstmal warten. Bei AMD steht ja bei Known issues irgendwas mit OPEN CL!

Die Krönung war noch, dass ich 20.45 über Google gesucht habe. Bin auf eine AMD Seite gekommen, wo der 20.45 mit Datum 17.12. geladen werden konnte. Habe später aber gemerkt, dass der alte nicht funktionierende 20.45er dort verlinkt war.
 
Hallo,
wenn es lediglich um das GPU-Rechnen mit OpenCL geht, kann ich einen Versuch mit der von mir für Darktable genutzten, kernel-unabhängigen Treiberkombination aus Beitrag #304 nur empfehlen.
Die manuelle Installation und ggf. Deinstallation der benötigten OpenCL-Treiberkomponenten per Paketmanager ist stressfrei uns schnell erledigt.

Gruß,
vnt
 
Heute hab ich Ubuntu neu installiert und nicht dran gedacht, kein update zuzulassen.
Wie auch immer, jetzt ist das System gleich direkt auf 5.8er Kernel gegangen.
Da bin ich mal gespannt, welche Überraschungen es damit beim AMD-Treiber gibt. Aber es kann ja eigentlich nur besser werden.
 
Also ich bin irgendwie zu blöd, ich habe versucht die Pakete einzeln zu installieren wie von vnt beschrieben, dass klappt zwar.. aber laufen tut es nicht.

Code:
Ubuntu 20.04.1 LTS 
5.4.0-60-generic
model name      : AMD Ryzen 3 PRO 2200GE w/ Radeon Vega Graphics
Versucht habe ich Treiber Version 20.30 / 20.40 / 20.45, davon lassen sich mit dem Script schonmal gar nicht installieren. Beispiel vom 40, aber ist bei allen ähnlich
Code:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 amdgpu-lib32 : Hängt ab von: libdrm2-amdgpu:i386 (= 1:2.4.100-1147286)
                Hängt ab von: libdrm-amdgpu-amdgpu1:i386 (= 1:2.4.100-1147286)
                Hängt ab von: libllvm10.0-amdgpu:i386 (= 1:10.0-1147286)
                Hängt ab von: libxatracker2-amdgpu:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libgbm1-amdgpu:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libegl1-amdgpu-mesa:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libegl1-amdgpu-mesa-drivers:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libgles1-amdgpu-mesa:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libgles2-amdgpu-mesa:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libglapi-amdgpu-mesa:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libgl1-amdgpu-mesa-glx:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libgl1-amdgpu-mesa-dri:i386 (= 1:20.1.5-1147286)
                Hängt ab von: libosmesa6-amdgpu:i386 (= 1:20.1.5-1147286)
                Hängt ab von: mesa-amdgpu-va-drivers:i386 (= 1:20.1.5-1147286)
                Hängt ab von: mesa-amdgpu-vdpau-drivers:i386 (= 1:20.1.5-1147286)
 amdgpu-pro-lib32 : Hängt ab von: libgl1-amdgpu-pro-glx:i386 (= 20.40-1147286)
                    Hängt ab von: libegl1-amdgpu-pro:i386 (= 20.40-1147286)
                    Hängt ab von: libgles2-amdgpu-pro:i386 (= 20.40-1147286)
                    Hängt ab von: libglapi1-amdgpu-pro:i386 (= 20.40-1147286)
                    Hängt ab von: libgl1-amdgpu-pro-dri:i386 (= 20.40-1147286)

Dann habe ich https://github.com/MBlenn/amdgpu-ocl das Script versucht, bekomme zwar ein Ergebnisse aber wenn ich das Paket installiere läuft OpenCL auch nicht
Bash:
Number of platforms                               1
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (3180.7)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
  Platform Host timer resolution                  1ns
  Platform Extensions function suffix             AMD

  Platform Name                                   AMD Accelerated Parallel Processing
Number of devices                                 0

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  No platform
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   No platform
  clCreateContext(NULL, ...) [default]            No platform
  clCreateContext(NULL, ...) [other]              No platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No devices found in platform

Dann habe ich mal den Treiber "Headless"? installiert, irgendein Tipp aus einem Forum, bekomme es nicht mehr genau zusammen. Hat auch nicht geklappt.
Was verdammt muss ich den tun? Bzw. wie bekomme ich raus was ich falsch mache ? :mad: Vermutlich habe ich jetzt alles "verbastelt" 🥴

Vielleicht noch ganz hilfreich:
Bash:
dpkg -l | egrep -i "roc[mkr]|hip|clinfo|opencl"
ii  boinc-client-opencl                  7.16.6+dfsg-1                         amd64        metapackage for AMD/ATI OpenCL-savvy BOINC client and manager
ii  clinfo                               2.2.18.04.06-1                        amd64        Query OpenCL system information
ii  intel-opencl-icd                     20.13.16352-1                         amd64        Intel graphics compute runtime for OpenCL
ii  libigc1                              1.0.3627-2                            amd64        Intel graphics compiler for OpenCL -- core libs
ii  libigdfcl1                           1.0.3627-2                            amd64        Intel graphics compiler for OpenCL -- OpenCL library
ii  libopencl-clang10                    10.0.0-2                              amd64        thin wrapper for clang
ii  motd-news-config                     11ubuntu5.2                           all          Configuration for motd-news shipped in base-files
ii  ocl-icd-libopencl1:amd64             2.2.11-1ubuntu1                       amd64        Generic OpenCL ICD Loader
ii  whiptail                             0.52.21-4ubuntu2                      amd64        Displays user-friendly dialog boxes from shell scripts
 
Gegen welchen Treiber hast du mein Script losgelassen? Mit dem 20.45er funktioniert es nicht mehr, da haben sich Namen und Strukturen geändert aufgrund des Wechsels zu ROCR, da fehlte mir bisher die Muße das zu erforschen.

Bis inkl. 20.40 reicht aber das erzeugte amdgpu-ocl_20.40-1147286.deb und ocl-icd-libopencl1 um OpenCL lauffähig zu bekommen.
 
Danke! Ich habe es jetzt mal mit dem 20.40 versucht, ging sofort. Manchmal muss man einfach mal eine Nacht drüber schlafen :sleep::cool:
 
Danke, hab den GitHub mal angepasst mit einer Warnung bzgl. 20.45.
Freut mich das es geklappt hat.
Doppelposting wurde automatisch zusammengeführt:

@Ritschie
Ich hab ein RPM analog zu meinem OpenCL Extraktor & Paketierungsskript gefunden. Basiert wie auch mein Skript auf dem Arch Linux AUR Paket https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=opencl-amd

${pkgdir} müsste man dann in ein RPM verpacken, dann geht das vermutlich auch bei SuSE
 
Zuletzt bearbeitet:
Hallo Phlox,

schön, dass OpenCL jetzt läuft.
Die Fehlermeldung mit den unerfüllbaren Abhängigkeiten, wie auch die Namen der betroffenen Pakete, deuten darauf hin, dass Du versehentlich versucht hattest, auf einem 64-Bit OS die 32-Bit Treiber zu installieren.

Was mich interessieren würde: als Du OpenCL nach meiner Anleitung manuell installiert hattest, hast Du dabei eventuell Schritt 7 und 8 vertauscht? Dann läuft die Installation zwar ohne Fehlermeldung durch, aber OpenCL funktioniert nicht.

Gruß,
vnt
 
Wenn ich das noch wüsste ich habe einfach so drauf los installiert. Ich meine aber exakt die Reihenfolge eingehalten zu haben, habe allerdings als erstes versucht den 45 Treiber zu installieren was vermutlich alles kaputt gemacht hat. *noahnung*

Hmm irgendwie verhält sich das ganze komisch, erst lief der GPU Task auf 50% dann zurück auf null und hängt jetzt bei 2,030%. Ist das Normal?
Edit: Okay geht doch weiter es ist nur sehr sehr langsam.

2021-01-14_10h51_45.png
 
Zuletzt bearbeitet:
Welche Tasks sind das denn? Die O2MD-Tasks performen eher schlecht auf Radeon-Karten. Bei diesen tasks habe ich auch das von Dir geschilderte Verhalten (Fortschritt springt irgendwann zurück) beobachtet. Extrem gut performen eigentlich alle Radeon-Karten bei den FGRPB1 for GPU #1 Tasks. Also ggf. im Benutzerprofil die O2MD Tasks abwählen und dafür die anderen zuschalten.
 
Zurück
Oben Unten