2012-08-16 13 views
5

Pur facendo nosetests per l'insieme dei programmi Python in Ubuntu si verifica un errore:Python LogicError: clGetPlatformIDs fallito: la piattaforma non trovato KHR

dispositivi = [d per d in cl.get_platforms() [0] .get_devices () se LogicError: clGetPlatformIDs fallito: la piattaforma non trovato KHR

File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", linea 30, in dispositivi = [d per d a cl.get_platforms () [0] .get_devices() if LogicError: clGetPlatformIDs non riuscito: piattaforma non trovata khr

Come è possibile risolverlo?

risposta

0

Prova questo. Dovrebbe funzionare:

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

Se si desidera elencare tutti i dispositivi compatibili presenti sulla piattaforma basta usare

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

Per creare un contesto su qualsiasi utilizzo dispositivo compatibile presente:

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

Dove corrisponde al dispositivo per il quale si desidera creare un contesto. per esempio:

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

fare riferimento anche a questo post del mio, sarà di aiuto. Anch'io ho avuto problemi con questo:

pyopencl: creating context for specific device

+5

E 'la chiamata a cl.get_platforms() che è in mancanza, quindi nessuno del codice in questa risposta funzionerà. –

2

Questo è un bug. Prova questo:

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

oppure eseguirlo (senza sudo) come utente root.

Dopo questo dovrebbe essere in grado di eseguirlo.

Aggiungi

nvidia-smi 

a /etc/rc.local (prima uscita, ovviamente), in modo da GPU saranno disponibili dopo ogni avvio.

0

Prova a eseguire il tuo script python come root. Se cl.get_platforms() non genera alcun errore in root, l'utente non dispone di privilegi sufficienti per eseguire l'azione. Per risolvere questo problema, installare il pacchetto nvidia-modprobe:

sudo apt-get install nvidia-modprobe 

Source

0

Questo potrebbe essere perché i driver OpenCL arent installati correttamente.

Le CPU Intel richiedono OpenCL Runtime per processori Intel Core e Intel Xeon (16.1.1 o successive). Scarica e installa OpenCL ™ Runtime più tardi dal sito Web di Intel. Ignora l'avviso di compatibilità.

Fonte

: https://youtu.be/AieYqNQ6ADM

Problemi correlati