2012-08-16 14 views
5

Al hacer nosetests para el conjunto de programas de Python en Ubuntu se produce un error:Python LogicError: clGetPlatformIDs fallaron: plataforma no encontrado khr

dispositivos

= [d para d en cl.get_platforms() [0] .get_devices () si LogicError: clGetPlatformIDs fallaron: plataforma no encontrado khr

archivo "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", línea 30, en dispositivos = [D para d en cl.get_platforms () [0] .get_devices() if LogicError: clGetPlatformIDs failed: plataforma no encontrada khr

¿Cómo es posible arreglarlo?

Respuesta

0

Pruebe esto. Se debe trabajar:

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

Si desea una lista de todos los dispositivos compatibles en su plataforma sólo tiene que utilizar

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

Para crear un contexto en cualquier uso de dispositivos compatibles esto:

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

Donde corresponde al dispositivo para el que desea crear un contexto. por ejemplo:

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

también se refieren a esta publicación mía, ayudará. Yo también tuve problemas con esto:

pyopencl: creating context for specific device

+5

Es la llamada a cl.get_platforms() que está fallando, por lo que ninguno del código en esta respuesta va a funcionar. –

2

trata de un error. Pruebe esto:

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

o ejecútelo (sin sudo) como root.

Después de eso, debería ser capaz de ejecutarlo.

Añadir

nvidia-smi 

a /etc/rc.local (antes de la salida, por supuesto), por lo que la GPU estará disponible después de cada arranque.

0

Intente ejecutar su secuencia de comandos python como root. Si cl.get_platforms() no arroja ningún error en la raíz, entonces su usuario no tiene suficiente privilegio para realizar la acción. Para solucionar este problema, instale el paquete nvidia-modprobe:

sudo apt-get install nvidia-modprobe 

Source

0

Esto podría deberse a que los conductores OpenCL enviaban instalados correctamente.

Las CPU Intel requieren OpenCL Runtime para los procesadores Intel Core e Intel Xeon (16.1.1 o posterior). Descargue e instale OpenCL ™ Runtime más reciente desde el sitio web de Intel. Ignora la advertencia de compatibilidad.

Fuente: https://youtu.be/AieYqNQ6ADM