sábado, 12 de abril de 2014

Blender apunte: consideraciones renderizado cpu-gpu



Aprovechando este ultimo blender apunte, quiero describir una situación, y plantear una reflexión.

Cuando usamos el renderizador Cycles, en las opciones de Blender (ctrl+alt+u>sistema), podemos elegir entre renderizar por tarjeta gráfica, (CUDA), o dejarlo por CPU.

Elegir CUDA, implica que podamos forzar a que el renderizador use la tarjeta gráfica. Para que te hagas una idea, escenas que tardan 9 minutos en renderizarse, pasan a solo 30 segundos.
Sin embargo hay un problema. Las tarjetas AMD.


El CUDA es un conjunto de herramientas de programación de las tarjetas gráficas de Nvidia. Solo sirven para Nvidia. Digamos que es el lenguaje que Cycles usa para hablar con la tarjeta gráfica, si es de la marca Nvidia.

Ahora bien, ¿qué sucede si uno es usuario de una tarjeta AMD?. ¿Se puede elegir la opción CUDA, para que Cycles hable con la tarjeta?. No. Es un lenguaje propietario. Nvidia no da permiso.¿Las AMD tienen algún lenguaje equivalente, que podamos usar en lugar de CUDA? Si. Se llama openCL. De hecho, este lenguaje es tan abierto, que las tarjetas Nvidia si tienen permiso para usarlo. ¿Usa cycles la opción de habilitar OpenCL? Respuesta corta=NO. Respuesta larga=Si tienes la ultima generación de tarjetas amd (r9) puedes usarlo... POCO, y MAL.

El problema, según los desarrolladores de Blender, es que AMD no le da soporte al set de herramientas (openCL). Por tanto, no lo pueden implementar correctamente. Y a partir de aquí, sálvese quien pueda.

La situación es nefasta. No cuesta ponerse en la piel de alguien que, mientras que los creadores de Blender echan la culpa a AMD, y AMD echa la culpa a los creadores de Blender, se podría haber comprado una MUY BUENA TARJETA GRÁFICA, pongamos por ejemplo, la nueva bestia de AMD r295x2, y comprobar que, tras el desembolso que supone, se encuentra con que tiene que renderizar por CPU. Avergonzante.

Mucha gente piensa que la solución es optar por nvidia y no preocuparse. Pero intentemos que nos llegue la sangre a la cabeza. Es correcto decir que siendo marcas equivalentes en potencia, Nvidia te vende sus tarjetas al doble o triple de precio.

Por comparar brevemente, pongamos como ejemplo las tope de gama gaming que están a punto de salir:

-La anterior mencionada de amd r295x2, tiene 2 nucleos, 11 teraflops de procesamiento, 8 gigas y cuesta 1300 euros.

-La equivalente de nvidia: Titan z. Cuenta con 2 nucleos, 8 teraflops de procesamiento, y 12 gigas. Y cuesta 3000 euros.*

Por tanto, llegamos a la conclusión. Siendo ambas tarjetas excelentes, resulta horroroso para el usuario de Blender, tener que elegir entre una buenísima tarjeta de AMD que NO funciona, o una buenísima tarjeta Nvidia que tiene un precio escandaloso.

Como referencia a esta reflexión, dejo esta noticia de blendernation.

Tom Rosendaal, autor de Blender,  pide a los usuarios de tarjetas AMD, que se hagan oir, en el asunto del soporte a OpenCL.

*he puesto el ejemplo con las tope de gama, por hacer un ejemplo extremo y que se pueda entender. Lo dicho con las tarjetas tope de gama, se aplica a tarjetas de cualquier gama.

No hay comentarios:

Publicar un comentario