Habilitar CUDA rendering en Blender Fedora

Recientemente me enfrenté a un pequeño problema técnico con una nueva instalación de Fedora y el paquete de Blender que se encuentra en los repositorios de la distribución. Al no encontrar mucha información en internet al respecto decidí escribir una entrada sobre el tema.

Para aquellas personas que desean utilizar su tarjeta gráfica para el proceso de render en Blender, este programa permite hacerlo utilizando CUDA para las tarjetas nvidia y OpenCL para las tarjetas ATI. Seguramente a más de uno le habrá ocurrido que, pese a tener instalado el driver privativo de nvidia, en la sección de “Compute device” no pueden seleccionar la opción de CUDA.Blender Compute DeviceLa razón de que esto suceda es que, en primer lugar Blender verifica que estén instalados tanto el controlador de nvidia como el de CUDA. Si alguno de estos falta no se permitirá seleccionar ningún dispositivo de cálculo adicional. Si ya tenemos habilitados los repositorios de RPMFusion podemos instalar estos drivers con yum.

$sudo yum install xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda

Después de haber instalado estos paquetes es probable que sigan sin poder ver habilitada la selección de dispositivo. La razón es muy sencilla. El paquete de Blender que se distribuye en los repositorios de Fedora y de RPMFusion no contiene la compilación del kernel de CUDA.

En este punto tenemos dos opciones: descargar la última versión de Blender del sitio oficial, cuya compilación ya incluye el kernel de CUDA o compilar el kernel de CUDA para el paquete provisto en los repositorios de Fedora y RPMFusion.

La primera alternativa es la más simple, sin embargo, tendrás que desinstalar la versión de los repositorios y lanzar blender de manera manual desde la carpeta en la que se descomprimió la versión descargada. Puede crearse un lanzador para Blender, pero hay gente necia, como yo, que prefiere la segunda opción: compilar el kernel de CUDA para el Blender de los repositorios.

Primero que nada, requerimos descargar el Toolkit de desarrollo de CUDA, el cual podemos encontrar en la página oficial:

https://developer.nvidia.com/cuda-downloads

Pueden elegir descargar el rpm si existe o preferiblemente el Runfile installer. Una vez descargado el Runfile, hay que darle permisos de ejecución y ejecutarlo como administrador (en este caso descargué la versión 7 del Tool Kit):

$chmod +x cuda_7.0.28_linux.run
$sudo ./cuda_7.0.28_linux.run

Para este instalador deben aceptar la licencia de distribución. Es software privativo a final de cuentas.

Do you accept the previously read EULA? (accept/decline/quit):

Una vez que se ha aceptado les preguntará si desean instalar el controlador. Es importante NO instalar el controlador, ya que lo hicimos previamente con la instalación de los paquetes correspondientes.

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 346.46? ((y)es/(n)o/(q)uit): n
Do you want to install the OpenGL libraries? ((y)es/(n)o/(q)uit) [ default is yes ]: n

Después viene en sí la instalación del Toolkit, el cual instala las herramientas de desarrollo para CUDA, incluyendo un profiler y una versión de eclipse como IDE.

Install the CUDA 7.0 Toolkit? ((y)es/(n)o/(q)uit): y

La instalación de los ejemplos de desarrollo es totalmente opcional y servirá a aquellos interesados en el desarrollo con CUDA. Si desean instalarla el instalador les pedirá especificar la ruta que contendrá los ejemplos.

Install the CUDA 7.0 Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /root ]: /usr/local/cuda/samples

Una vez realizada la instalación del Toolkit veremos que ya aparece en Blender la opción de seleccionar nuestro dispositivo de cálculo. Seleccionar CUDA no basta. Hasta este momento solo nos estamos preparando para compilar el kernel de CUDA para Blender. Para poder realizar el proceso de compilación de manera satisfactoria requerimos instalar el compilador gcc y gcc-c++, así como las dependencias de estos paquetes.

$sudo yum install gcc gcc-c++

Una vez instalados los paquetes y dependencias procedamos a hacer un “Render” utilizando Cycles y “GPU Compute como dispositivo.
Cycles render

Blender comenzará automáticamente el proceso de compilación del kernel de CUDA, lo cual puede tomar algún tiempo. El mensaje que mostrará será como el siguiente:
Loading render kernels

Terminado este proceso ya tendremos CUDA habilitado y listo para generar “Renders” utilizando el GPU. Aquí un ejemplo de un render hecho con Blender Cycles tomado de Artcalli.org
Render Blender

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s