Acabo de hacer un poco de experimentación y puedo confirmar las declaraciones de Eric Appleman de que Bumblebee no es necesario para CUDA. (más sobre Bumblebee : ¿es una NVIDIA GeForce con tecnología Optimus compatible con Ubuntu? )
Sin embargo, cuando se necesita para mostrar ejemplos gráficos usando OpenGL, se hace necesario algo así como abejorro para los sistemas de Optimus, de lo contrario o bien no aparece nada en la pantalla o aparece el error:
ERROR: Support for necessary OpenGL extensions missing.
Al ejecutar un programa CUDA, debe instalar el kit de herramientas CUDA y un controlador nvidia. Si tiene la intención de compilar programas, también necesita el SDK. Los instaladores se pueden encontrar en http://developer.nvidia.com/cuda-downloads , lea las instrucciones a continuación antes de descorchar su computadora portátil Optimus.
Instalando CUDA
Conductor
Recomiendo instalar el controlador nvidia desde el administrador de paquetes de Ubuntu. Si instala Bumblebee, no necesita preocuparse por el controlador. De lo contrario, después de la instalación, deshabilite las bibliotecas de nvidia como se describe en https://askubuntu.com/a/107746/6969 . Si no lo hace, perderá la aceleración 3D y posiblemente se atasque en una resolución baja.
Kit de herramientas
Básicamente tienes que descargar el instalador, hacerlo ejecutable y ejecutarlo. - Descargue el instalador. Al escribir estas líneas, 4.2.9 es el controlador más reciente. Como tengo un sistema operativo de 64 bits, uso el paquete de Ubuntu 11.04 de 64 bits (aunque estoy ejecutando 12.04). Hágalo ejecutable y permita la instalación para /usr/local/cuda
:
chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
Cuando aparece el mensaje de instalación que le pregunta dónde instalar CUDA, simplemente presione Entrar para aceptar el valor predeterminado /usr/local/cuda
:
......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):
Después de la instalación, imprimirá algunos mensajes que sugieren colocar el directorio de la biblioteca cuda en la ruta de búsqueda de la biblioteca:
========================================
* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
* for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
* for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
* for 32-bit Linux distributions add /tmp/cuda/cuda/lib
* for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root
* Please read the release notes in /tmp/cuda/cuda/doc/
* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete
Puede omitir este paso si lo desea, pero luego debe configurarlo LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
más tarde cuando ejecute un programa.
SDK
Si desea poder compilar aplicaciones CUDA, puede instalar el SDK de una manera similar a la descrita anteriormente. Descargue, hágalo ejecutable y ejecútelo (no como root, por ejemplo, sudo
¡ sin !). Sin embargo, al compilar partes de él, tuve que hacer algunos cambios NVIDIA_GPU_Computing_SDK/C/common/common.mk
:
después de aproximadamente la línea 189 OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu
, agregue:
OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
después de aproximadamente la línea 271, cambie ${RENDERCHECKGLLIB}
de ${OPENGLLIB}
modo que se vea así
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
- Unas pocas (5) líneas más, haga lo mismo, pero elimine
-lcuda
también.
- unas pocas (7) líneas más, haga lo mismo que hizo en la línea 271.
Usando CUDA
CUDA no necesita un servidor X controlado por nvidia para funcionar. En ese caso, puede ejecutar su programa de prueba aleatorio como:
LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram
Si no ha agregado CUDA a la ruta de su biblioteca, necesitará:
LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram
(puede quitar las rutas de 32 bits si su programa es de 64 bits).
Si el programa CUDA tiene algo que mostrar usando OpenGL, debe usar optirun:
optirun blender
O, si no tenía CUDA agregado a su ruta predeterminada:
LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH optirun blender
Aquí está la respuesta completa (basada en las respuestas de Alex Falappa y Lekensteyn ):
De hecho, es posible obtener GPU nVidia Optimus para ejecutar CUDA en Ubuntu.
Abejorro no es necesario para CUDA. (más sobre Bumblebee : ¿es una NVIDIA GeForce con tecnología Optimus compatible con Ubuntu? )
Sin embargo, cuando se necesita para mostrar ejemplos gráficos usando OpenGL, se hace necesario algo así como abejorro para los sistemas de Optimus, de lo contrario o bien no aparece nada en la pantalla o aparece el error:
Si necesita utilizar un programa intensivo en gráficos como Blender, Bumblebee es una buena opción.
Vaya a Instalación de CUDA si no desea instalar Bumblebee (es decir, si no necesita OpenGL).
De lo contrario, sigue leyendo.
Instalación de abejorro
Siga las instrucciones en ¿Qué tan bien funcionan las computadoras portátiles con Nvidia Optimus?
Actualmente, un desarrollador de Bumblebee los mantiene actualizados.
Una vez que haya instalado Bumblebee y reiniciado, podrá elegir la tarjeta gráfica que usará al iniciar programas mediante el uso del
optirun
programa.Por ejemplo:
Para probar rápidamente si todo funciona correctamente, use:
Verá un programa con esferas giratorias coloridas si todo funciona correctamente.
Verifique que la cadena del proveedor GL en el terminal contiene la palabra nvidia .
Si solo ejecuta
glxspheres
, verá que la cadena del proveedor contiene la tarjeta Intel.Al ejecutar un programa CUDA, debe instalar el kit de herramientas CUDA y un controlador nvidia. Si tiene la intención de compilar programas, también necesita el SDK. Los instaladores se pueden encontrar en http://developer.nvidia.com/cuda-downloads , lea las instrucciones a continuación antes de descorchar su computadora portátil Optimus.
Instalando CUDA
Conductor
Recomiendo instalar el controlador nvidia desde el administrador de paquetes de Ubuntu. Si instala Bumblebee, no necesita preocuparse por el controlador. De lo contrario, después de la instalación, deshabilite las bibliotecas de nvidia como se describe en https://askubuntu.com/a/107746/6969 . Si no lo hace, perderá la aceleración 3D y posiblemente se atasque en una resolución baja.
Kit de herramientas
Básicamente tienes que descargar el instalador, hacerlo ejecutable y ejecutarlo. - Descargue el instalador. A partir del 9 de enero de 2013, 5.0.35 es el controlador más reciente. Como tengo un sistema operativo de 64 bits, uso el paquete de Ubuntu 11.10 de 64 bits (aunque estoy ejecutando 12.10) - Hazlo ejecutable y permite la instalación para
/usr/local/cuda
:Cuando aparece el mensaje de instalación que le pregunta dónde instalar CUDA, simplemente presione Entrar para aceptar el valor predeterminado
/usr/local/cuda
:Después de la instalación, imprimirá algunos mensajes que sugieren colocar el directorio de la biblioteca cuda en la ruta de búsqueda de la biblioteca:
Puede omitir este paso si lo desea, pero luego debe configurarlo
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
más tarde cuando ejecute un programa.SDK
Si desea poder compilar aplicaciones CUDA, puede instalar el SDK de una manera similar a la descrita anteriormente. Descargue, hágalo ejecutable y ejecútelo (no como root, por ejemplo,
sudo
¡ sin !).Usando CUDA
CUDA no necesita un servidor X controlado por nvidia para funcionar. En ese caso, puede ejecutar su programa de prueba aleatorio como:
Si no ha agregado CUDA a la ruta de su biblioteca, necesitará:
(puede quitar las rutas de 32 bits si su programa es de 64 bits).
Si el programa CUDA tiene algo que mostrar usando OpenGL, debe usar optirun:
O, si no tenía CUDA agregado a su ruta predeterminada:
Instalar una compilación de Blender
(Con núcleos CUDA precompilados)
Cuando ejecuta
optirun blender
, puede recibir un mensaje de Blender que dice que la compilación del núcleo CUDA falló, y un mensaje en el terminal similar al siguiente:Si desea utilizar la función de representación de GPU de Blender, es posible que necesite una compilación de Blender con núcleos CUDA precompilados. Todas las compilaciones de Blender.org tienen núcleos CUDA precompilados; las compilaciones ppa: cheleb / blender-svn ( más información en esta pregunta ) no lo hacen.
Para instalar una compilación oficial de Blender, simplemente siga las instrucciones establecidas en esta respuesta .
Si ha instalado Blender en
/usr/lib/blender
, entonces debería poder ejecutar Blender desde el terminal y usar el procesamiento de GPU con:fuente
usermod
comando. Mantendré las instrucciones de instalación en askubuntu.com/a/36936/6969 actualizadas, así que enlaza esa publicación en lugar de copiar esas instrucciones de instalación.La compatibilidad con gráficos híbridos (generalmente gráficos integrados Intel y gráficos discretos Nvidia) en Linux es actualmente un poco problemático. Algo se mueve lentamente en el campo del servidor X pero no contenga la respiración.
Como habrás adivinado, Bumblebee es actualmente un buen camino a seguir.
Recientemente compré una computadora portátil Asus N55 con gráficos Intel / Nvidia. Pude obtener el procesador de Blender Cycles para usar CUDA.
Cuando instalé Ubuntu 12.04, usó los gráficos integrados de forma predeterminada a través del controlador de gráficos Intel. El controlador de gráficos noveau no debe instalarse.
Luego abrí una terminal e hice:
Después de eso lo hice (según lo recomendado por las instrucciones de instalación):
Luego reinicié.
Para elegir el controlador que se usará al iniciar programas, use el programa optirun, por ejemplo:
Para probar si todo funciona correctamente, use:
Y verifique que la cadena del proveedor GL contenga la palabra Nvidia. Si corres en su lugar:
La cadena del proveedor debe contener la palabra Intel
fuente
optirun
y puedo verificar que Blender estaba usando mi GPU nVidia para representar la ventana 3D. Sin embargo, no hay una opción "GPU" en el menú desplegable de las Preferencias de usuario de Blender. Solo enumera "CPU". Ver esta captura de pantalla . ¿Tendré que instalar controladores adicionales para usar CUDA?Me parece que para ejecutar todos los ejemplos de CUDA, usando Bumblebee, debe instalar los controladores 295.40 desde aquí y durante la instalación, elija no anular el
config x11
.Luego debe usar el mismo controlador para compilar los ejemplos y ejecutar el programa.
fuente