Python LogicError: clGetPlatformIDs fehlgeschlagen: Plattform nicht gefunden khr
Während nosetests für die Python-Programme in Ubuntu ein Fehler Auftritt:
devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr
File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", line 30, in <module>
devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr
Wie es möglich ist es zu beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, Sie haben pyopencl installiert, aber keines der aktuellen Geräte-Treiber. Bitte konsultieren Sie die Dokumentation zu https://documen.tician.de/pyopencl/misc.html.
Hier ist die Beschreibung eines solchen Verhaltens:
Im Grunde, und der nächste Befehl sollte genug sein, um es läuft auf einer CPU:
Für die ordnungsgemäße installation von AMD-und Nvidia-Geräte sehen für vom Händler bereitgestellte OpenCL-Treiber.
dies ist ein bug. Versuchen Sie dies:
oder führen Sie es (ohne sudo) als root.
Danach sollte in der Lage sein, um Sie auszuführen.
Hinzufügen
in /etc/rc.local (vor dem exit natürlich auch), damit die GPU wird nach jedem Neustart angezeigt werden.
Versuchen Sie Ihre python-Skript als root. Wenn
cl.get_platforms()
löst keine Fehler unter der Wurzel, dann ist dein Benutzer keine ausreichende Berechtigung, um die Aktion auszuführen. Um dieses Problem zu lösen, installieren Sienvidia-modprobe
Paket:Quelle
Dafür könnte sein, dass der OpenCL Treiber nicht richtig installiert.
Intel-CPUs erfordern eine OpenCL-Laufzeitumgebung für Intel Core und Intel Xeon Prozessoren (16.1.1 oder später). Downloaden und installieren Sie OpenCL™ Runtime neuesten von der intel website. Ignorieren Sie die Warnung Kompatibilität.
Quelle: https://youtu.be/AieYqNQ6ADM
Versuchen. Es sollte funktionieren:
Wenn Sie möchten, um eine Liste der kompatiblen Geräte finden Sie auf Ihrer Plattform verwenden Sie einfach
Einen Kontext schaffen, auf jedem kompatiblen Gerät verwenden:
Wo die dem Gerät entspricht, für das Sie einen Kontext schaffen. zum Beispiel:
siehe auch dieser post von mir, es wird helfen. Ich hatte auch Probleme mit diesem:
pyopencl: erstellen von Kontext-spezifische Gerät