Hallo,
ich möchte OpenCL unter Ubuntu auf der AMD-GPU nutzen. Wenn ich das
Programm starte, kommt allerdings folgende Fehlermeldung:
>>Error initializing OpenCL: clGetPlatformIDs (error -1001)
Deshalb habe ich das hier ausprobiert:
https://askubuntu.com/questions/850281/opencl-on-ubuntu-16-04-intel-sandy-bridge-cpu
Genau gesagt habe ich folgende Zeilen im Terminal eingegeben:
1
sudo apt install ocl-icd-libopencl1
2
sudo apt install opencl-headers
3
sudo apt install clinfo
4
5
sudo apt install ocl-icd-opencl-dev
Das wurde offensichtlich auch alles sauber ausgeführt.
Nach der Eingabe von
1
sudo apt install beignet
kommt allerdings eine Fehlermeldung, nämlich kurz gesagt, dass das Paket
fehlt, abgelöst wurde oder nur aus einer anderen Quelle verfügbar ist.
1
Doch die folgenden Pakete ersetzen es:
2
beignet-opencl-icd
Also habe ich folgendes ins Terminal eingegeben:
1
sudo apt install beignet-opencl-icd
Damit hat die Installation auch funktioniert und es wurde
amd64 (1.3.2-8)
eingerichtet.
Nun kommt diese Fehlermeldung, wenn man das Programm startet:
>>Error initializing OpenCL: No suitable OpenCL device found.
Woran kann das liegen?
Nebenbei sei bemerkt, dass das Programm unter Win10 auf dem gleichen PC
einwandfrei mit OpenCL läuft. Also auch auf der selben GraKa.
Verwendet wird die neuste Ubuntu-Version und das Programm, das gestartet
werden soll, ist das hier:
https://sjeng.org/leela.html
Leela 0.11.0 for Ubuntu (deb package)
Die GraKa ist eine Radeon RX550.
> sudo apt install beignet
(bzw beignet-opencl-icd, intel-opencl-icd)
Das ist OpenCL auf der iGPU einer Intel-CPU. d.H. lässt deine wesentlich
stärkere Grafikkarte außen vor.
für die bräuchtest du "opencl-amdgpu-pro-icd" (falls du den
"Pro"-Treiber von AMD verwendest) oder könntest dein Glück mit
"mesa-opencl-icd" versuchen.
Danke für die schnelle Antwort und die Infos!
Εrnst B. schrieb:> für die bräuchtest du "opencl-amdgpu-pro-icd" (falls du den> "Pro"-Treiber von AMD verwendest)
Die Graka wird so angezeigt:
> Kernel driver in use: amdgpu
Das sollte der Open-Source (nicht-Pro) Treiber sein.
versuch
>> sudo apt install mesa-opencl-icd
und danach ein
>> clinfo
Danke!
Εrnst B. schrieb:> versuch>>> sudo apt install mesa-opencl-icd
Nun kommt beim Programmstart die Fehlermeldung
>>Error initializing OpenCL: clBuildProgram (error -43)Εrnst B. schrieb:> danach ein>>> clinfo
Das erzeugt eine Menge Text, siehe nächstes Posting:
UbuntuNeuling schrieb:> Genau gesagt habe ich folgende Zeilen im Terminal eingegeben:sudo apt> install ocl-icd-libopencl1> sudo apt install opencl-headers> sudo apt install clinfo> sudo apt install ocl-icd-opencl-devUbuntuNeuling schrieb:> sudo apt install beignet-opencl-icd
Kann es sein, dass sich die erste Installation mit der "sudo apt install
mesa-opencl-icd"-Installation ins Gehege kommt?
UbuntuNeuling schrieb:> fatal error: cannot open file> '/usr/local//usr/lib/clc/polaris11-amdgcn-mesa-mesa3d.bc': No such file> or directory
Du musst das Paket libclc-amdgcn installieren.
In diesem ist die gesuchte Datei enthalten.
Siehe dazu auch die Ausgabe auf Debian Buster (das du Ubuntu nimmst,
macht bezüglich dem Paketnamen keinen großen Unterschied, Ubuntu nimmt
ohnehin die Pakete von Debian sid):
1
apt show libclc-amdgcn
2
Package: libclc-amdgcn
3
Version: 0.2.0+git20180917-3
4
Priority: optional
5
Section: libs
6
Source: libclc
7
Maintainer: Debian OpenCL team <pkg-opencl-devel@lists.alioth.debian.org>
Danke für die Antworten!
Nano schrieb:> Du musst das Paket libclc-amdgcn installieren.> In diesem ist die gesuchte Datei enthalten.
Muss ich dann einfach nur das hier im Terminal eingeben (oder gehören
noch andere Schritte dazu)?
UbuntuNeuling schrieb:> Muss ich dann einfach nur das hier im Terminal eingeben (oder gehören> noch andere Schritte dazu)?>
1
> sudo apt install libclc-amdgcn
2
>
Das sollte alles sein. Sollte es noch weitere Abhängigkeiten geben, dann
werden die in der Regel automatisch aufgelöst.
Ob es noch optionale Pakete gibt und welche Abhängigkeiten das Paket
hat, kannst du mit apt und dpkg herausfinden.
Nano schrieb:> UbuntuNeuling schrieb:>> Muss ich dann einfach nur das hier im Terminal eingeben (oder gehören>> noch andere Schritte dazu)?>>> sudo apt install libclc-amdgcn>>>> Das sollte alles sein. Sollte es noch weitere Abhängigkeiten geben, dann> werden die in der Regel automatisch aufgelöst.
Nach Eingabe von "sudo apt install libclc-amdgcn" in das Terminal
erscheint dort folgender Text:
1
Paketlisten werden gelesen… Fertig
2
Abhängigkeitsbaum wird aufgebaut… Fertig
3
Statusinformationen werden eingelesen… Fertig
4
libclc-amdgcn ist schon die neueste Version (0.2.0+git20190827-8).
5
libclc-amdgcn wurde als manuell installiert festgelegt.
6
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Scheint also schon installiert zu sein.
Wenn man das Programm startet, kommt dann auch wieder die Fehlermeldung
"Error initializing OpenCL: clBuildProgram (error -43)".
UbuntuNeuling schrieb:> Scheint also schon installiert zu sein.> Wenn man das Programm startet, kommt dann auch wieder die Fehlermeldung> "Error initializing OpenCL: clBuildProgram (error -43)".
Ich habe mir die Fehlermeldung jetzt noch einmal angesehen.
Der Pfad stimmt nicht:
> fatal error: cannot open file> '/usr/local//usr/lib/clc/polaris11-amdgcn-mesa-mesa3d.bc': No such file> or directory
Du hast einmal
/usr/local/
das auch nicht mit einem Komma oder ähnlich getrennt ist.
und dann noch
/usr/lib/clc/polaris11-amdgcn-mesa-mesa3d.bc
wo sich die Datei befinden sollte.
Korrigere die Pfadangaben, dann sollte das gehen und er die Datei
finden.
Danke für die Hilfe!
Wie korrigert man die Pfadangaben?
Unter dem Icon 'Dateien' finde ich leider auch keinen Ordner "usr",
sonst hätte ich dort einfach den gesuchten Ordner mit der Datei
erstellt.
Poste mal die vollständige Ausgabe von clinfo, also das Programm das du
ausführst und den falschen Pfad verwendet.
Schieb die Ausgabe am besten in eine Textdatei und stell diese hier ein.
UbuntuNeuling schrieb:> Nano schrieb:>> Was zeigt>> apt show clang>> an?>> Das hier, clang scheint also installiert zu sein:
Ne, mein Fehler. apt show holt nur die Daten vom Repo und zeigt sie.
Was gibt folgender Befehl aus:
apt search clang
UbuntuNeuling schrieb:> siehe Anhang
Dann lag ich mit meiner Vermutung richtig.
clang ist nicht installiert.
Gib mal folgenden Befehl ein:
sudo apt install clang
und danach führe noch einmal clinfo aus.
Nano schrieb:> Gib mal folgenden Befehl ein:> sudo apt install clang
Nach der Eingabe werden jede Menge Sachen installiert, das dauert ca.
3min.
Nano schrieb:> und danach führe noch einmal clinfo aus.
Siehe Anhang.
Wenn man das Programm startet, kommt leider weiterhin die Fehlermeldung
"Error initializing OpenCL: clBuildProgram (error -43)".
Die ersten Zeilen im Anhang sagen "no supported GPU found", woran das
wohl liegt?
1
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
2
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)
3
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
4
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)
5
[...]
Vielleicht ein Kompatibilitätsproblem zwischen der OpenCL-2-Graka und
dem installierten OpenCL-3?
UbuntuNeuling schrieb:> Die ersten Zeilen im Anhang sagen "no supported GPU found", woran das> wohl liegt?
Das liegt an deinen ersten Installationsversuchen,
UbuntuNeuling schrieb:> sudo apt install beignet
usw.
das musst du wieder rückgängig machen um die Warnung loszuwerden.
"If you have multiple ICDs installed... " Trifft auf deinen Rechner im
Moment zu, du hast beignet-opencl-icd und mesa-opencl-icd installiert,
wobei dir für Ersteres die Hardware fehlt. Das wird angemeckert.
Also:
sudo apt purge beignet-opencl-icd
sudo apt autoremove
UbuntuNeuling schrieb:> fatal error: cannot open file> '/usr/local//usr/lib/clc/polaris11-amdgcn-mesa-mesa3d.bc'
Bist du sicher, dass du keine weiteren "Tutorials" aus dem Internet
befolgt hast, irgendwas mit "./configure --prefix=/usr/local/ && make &&
sudo make install" oder so war da nicht dabei?
Falls doch, solltest du das auch rückgängig machen.