2011-02-10 19 views
14

Estoy tratando de comenzar a trabajar con OpenCL. Tengo dos tarjetas gráficas NVidia, instalé el "controlador del desarrollador" y el SDK del sitio web de NVidia. He compilado las demos pero cuando corroError -1001 en clGetPlatformIDs ¡Llamada!

./oclDeviceQuery

veo:

OpenCL SW Info:

error -1001 en clGetPlatformIDs Call !!!

¿Cómo puedo arreglarlo? ¿Significa que mis tarjetas nvidia no pueden ser detectadas? Estoy ejecutando Ubuntu 10.10 y el servidor X funciona correctamente con el controlador nvidia.

Estoy bastante seguro de que el problema no está relacionado con los permisos de archivos, ya que tampoco funciona con sudo.

Respuesta

5

Esto es el resultado de no instalar la porción ICD del tiempo de ejecución de OpenCL de Nvidia. El perfil de ICD le indicará a su aplicación las diferentes implementaciones de openCL instaladas en el sistema, ya que múltiples implementaciones de diferentes proveedores pueden coexistir. Cuando su aplicación no encuentra la información del ICD, da el error -1001.

+5

¿Podría decirme más acerca de qué es exactamente lo que falta? Tengo el archivo /etc/OpenCL/vendors/nvidia.icd que hace referencia a la biblioteca libcuda.so. La biblioteca en sí existe y está en LD_LIBRARY_PATH. – tnorgd

1

Puesto que acabo de pasar un par de horas en esto, pensé que iba a compartir: que tiene el error debido a que estaba conectado a la máquina por escritorio remoto (mstsc). En la máquina, todo funcionó bien.

Me han dicho que debería funcionar con TeamViewer por cierto.

2

Mismo problema para mí en un sistema Linux. La solución es añadir el usuario al grupo video:

# sudo usermod -aG video your-user-name 
+3

¡Eso no ayuda! Al menos no para mí, y tengo el mismo problema. – einpoklum

0

lo he resuelto en Ubuntu 13.10 descarada para OpenCL Intel por enlace creado:

sudo ln -s /opt/intel/opencl-1.2-3.2.1.16712/etc/intel64.icd /etc/OpenCL/vendors/nvidia.icd 
7

En mi caso lo he resuelto mediante la instalación de nvidia-modprobe paquete disponible en Ubuntu (utópico/multiverso). Y el propio controlador (V346) se instaló desde
https://launchpad.net/~mamarley/+archive/ubuntu/nvidia

nvidia-OpenCL-ICD-346 Concretamente, he instalado, nvidia-libopencl1-346, nvidia-346-UVM, nvidia-346 y libcuda1-346. No estoy seguro si todos son necesarios para OpenCL.

+0

En mi caso, el problema fue nvidia-modprobe. Ahora funciona incluso con el controlador anterior (331). ¡Gracias! – avtomaton

+1

Lo hice funcionar para mí en Ubuntu 15.10, la configuración exacta se explica en: http://stackoverflow.com/a/33483311/895245 –

0

Acabo de toparme con este problema en ubuntu 14.04 y no pude encontrar CUALQUIER respuesta de trabajo en ningún lugar en línea incluyendo este hilo (aunque este fue el primero en aparecer en google). Lo que terminó trabajando para mí fue eliminar TODO el software nvidia anterior y luego reinstalarlo usando el archivo .run proporcionado en el sitio web de nvidia. La instalación de los componentes a través de apt-get parece fallar por alguna razón.

1) Descarga de archivos CUDA .run: https://developer.nvidia.com/cuda-downloads

2) Purgar todos los paquetes nvidia anteriores

sudo apt-get purge nvidia-* 

3) Instalar todos los componentes de archivo de ejecución (es probable que tenga que parar o reiniciar X en la recuperación el modo de ejecutar este)

sudo sh cuda_X.X.XX_linux.run 
-1

esto podría ser debido a la consulta de clGetPlatformIDs por múltiples hilos al mismo tiempo

Cuestiones relacionadas