2012-08-16 2 views
5

Während nosetests für den Satz von Programmen in Python Ubuntu ein Fehler auftritt, macht:Python LogicError: clGetPlatformIDs fehlgeschlagen: Plattform nicht gefunden khr

devices = [d für d in cl.get_platforms() [0] .get_devices (if) LogicError: clGetPlatformIDs fehlgeschlagen: Plattform nicht khr

File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", Zeile 30, in devices = [d für d in cl.get_platforms gefunden () [0] .get_devices() if LogicError: clGetPlatformIDs fehlgeschlagen: Plattform nicht gefunden khr

Wie ist es möglich, es zu beheben?

Antwort

0

Versuchen Sie dies. Es sollte funktionieren:

devices = [ d for d in cl.get_platforms()[0].get_devices(cl.device_type.GPU)] 

Wenn Sie nur

platform = cl.get_platform() 
my_devices = platform[0].get_devices(device_type = cl.devices_type.ALL) 
print my_devices 

verwenden, um alle kompatiblen Geräte auf Ihrer Plattform aufgelistet werden sollen, um dies einen Kontext auf jedem kompatiblen Gerät verwenden zu erstellen:

context = cl.Context([my_devices[<index>]) 

Wo entspricht das Gerät, für das Sie einen Kontext erstellen möchten. zum Beispiel:

context = cl.Context([my_devices[0]) 

beziehen Sie sich auch auf diesen Beitrag von mir, es wird helfen. Auch ich hatte Probleme mit diesem:

pyopencl: creating context for specific device

+5

Es ist der Aufruf an cl.get_platforms() das ist versagt, so dass keiner der Code in dieser Antwort wird funktionieren. –

2

das ist ein Fehler. Versuchen Sie Folgendes:

sudo apt-get install nivida-settings 
sudo nvidia-smi 

oder führen Sie es (ohne Sudo) als root.

Danach sollte Ihr es ausführen können. In

nvidia-smi 

/etc/rc.local (vor Abfahrt, natürlich), so dass Sie GPU nach jedem Neustart zur Verfügung stehen werden.

0

Versuchen Sie, Ihr Python-Skript als root auszuführen. Wenn cl.get_platforms() unter root keine Fehler verursacht, hat Ihr Benutzer nicht die erforderlichen Berechtigungen zum Ausführen der Aktion. Um dies zu lösen, installieren nvidia-modprobe Paket:

sudo apt-get install nvidia-modprobe 

Source

0

Dies könnte, weil OpenCL-Treiber richtig installiert Arent.

Intel CPUs benötigen OpenCL Runtime für Intel Core und Intel Xeon Prozessoren (16.1.1 oder höher). Downloaden und installieren Sie OpenCL ™ Runtime aktuell von der Intel Website. Ignoriere die Kompatibilitätswarnung.

Quelle: https://youtu.be/AieYqNQ6ADM

Verwandte Themen