¿Cómo hacer que OpenCL funcione en controladores 14.10 + Nvidia 331.89?


11

Los controladores propietarios 331.89 no me dan OpenCL. (probé ambas pruebas / actualizaciones) durante un tiempo tuve la versión 304.123 que funcionó, excepto que quería los controladores actuales y ahora no puedo degradar.

De todos modos, podría degradar por solución, pero deseo que 331.89 funcionen.

Usé "darktable -d opencl" como prueba y también agregué un enlace simbólico a darktable, pero eso no ayuda con 331.89

Respuestas:


11

Este problema desconcertante también me confundió hasta que encontré una serie de publicaciones en el foro sobre Virtual Lighttable en la que los participantes realizan algunas depuraciones. Resulta que los controladores NVIDIA necesitan una regla modprobe personalizada que no esté instalada de manera predeterminada con ninguno de nvidia-331los controladores opencl. Estas reglas se proporcionan en el nvidia-modprobepaquete.

Aquí hay una lista de todos los paquetes que necesitará para que OpenCL funcione en Ubuntu 14.10 con controladores NVIDIA:

sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe

EDITAR: en caso de que alguien encuentre un problema similar en Ubuntu 15.04 y los controladores NVIDIA 346.59, el comando para solucionar el problema es casi idéntico:

sudo apt-get install nvidia-346 nvidia-346-uvm nvidia-opencl-dev nvidia-modprobe

En Linux mint, encuentro este error al ejecutar el deviceQueryprograma de prueba CUDA:optirun --bridge primus ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 38 -> no CUDA-capable device is detected Result = FAIL
user3728501

2

Ubuntu 15.10

sudo apt-get install nvidia-352 nvidia-352-dev nvidia-prime nvidia-modprobe nvidia-opencl-dev
sudo ln -s /usr/include/nvidia-352/GL /usr/local/include
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so

Luego compila con:

gcc -o main main.c -lOpenCL

Y usa el encabezado como:

#include <CL/cl.h>

Notas:

Realmente recomiendo actualizar a 15.10 para que esto funcione: nunca antes lo había logrado.

Probado en:

  • Lenovo ThinkPad T430 con NVIDIA NVS 5400M
  • Lenovo ThinkPad W540 con NVIDIA Quadro K1100M

0

Para Ubuntu 14.04, nvidia-modprobe estropeó mi sistema. Pero me di cuenta de que el nvidia-331-uvm no está activado desde el principio (Dios sabe por qué). Así que vamos a activarlo:

$ sudo modprobe nvidia-331-uvm
$ sudo mknod -m 666 /dev/nvidia-uvm c 249 0

Y entonces:

$ sudo clinfo

Entonces podrá usar opencl incluso como usuario no root. Por qué es así se explica en la lista de correo Virtual Lighttable .

Por lo tanto, finalmente agregué las siguientes líneas en mi /etc/rc.localarchivo:

# begin opencl config
modprobe nvidia-331-uvm
mknod -m 666 /dev/nvidia-uvm c 249 0
clinfo
# end opencl config 

Entonces todo funciona sin problemas;)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.