Mudanças entre as edições de "Blender Farm"

De Pontão Nós Digitais
(Single node GPU parallel rendering)
(6cafb52)
Linha 35: Linha 35:
  
 
== Single node GPU parallel rendering ==
 
== Single node GPU parallel rendering ==
 +
 
# Install NVidia CUDA on a linux or [[Mac]] OSX node (follow a post on stackoverflow by Gandalf)
 
# Install NVidia CUDA on a linux or [[Mac]] OSX node (follow a post on stackoverflow by Gandalf)
# If you succeeded, then GPU will show up in preferences:
+
# If you succeeded, then GPU will showup in preferences:
 
# Go to Preferences - System. Compute device must show CUDA (likely OpenCL too). Select that.
 
# Go to Preferences - System. Compute device must show CUDA (likely OpenCL too). Select that.
 
# On the render context, set Compute Device to GPU. Make sure the Cycles Render engine is selected.
 
# On the render context, set Compute Device to GPU. Make sure the Cycles Render engine is selected.
Linha 43: Linha 44:
 
==== Choosing the block size ====
 
==== Choosing the block size ====
  
== Multiple node ==
+
== Multiple nodes ==
 
We wrote scripts on a software package called '''bfarmx''' to control blender
 
We wrote scripts on a software package called '''bfarmx''' to control blender
 
using Netrender to distribute frames. These are still in a very early experimental phase.
 
using Netrender to distribute frames. These are still in a very early experimental phase.
 
Dowload them at:
 
Dowload them at:
 
  http://github.com/rfabbri/bfarmx
 
  http://github.com/rfabbri/bfarmx
 +
 +
=== Installing Blender on a Cluster ===
 +
 +
The easiest way was to download the self-contained binary tarball from the
 +
downloads section of the official website (it runs on most distros), then install that on the cluster,
 +
either in the user NFS home folder (install once for the entire cluster),
 +
or system-wide at each node.
 +
  
 
== See Also ==
 
== See Also ==

Edição das 18h03min de 2 de outubro de 2015

We describe some basic experiments on running Blender on a hybrid compute cluster.

Goal

One main goal is to speed up rendering. Full HD Videos can take weeks to render from a fairly complex scene using the Cycles engine.

Test Data / Applications

To feel the need for high-performance numeric crunching, download the a demo file from

https://www.blender.org/download/demo-files

The barcelona pavilion scene won't even load on a 1GB NVidia GPU (it says: out of memory)! An SD video with 100 frames takes over 3 days on a top-of-the-line Core i7 (as of 2015).

On our compute cluster with Tesla GPUs, each having 4GB RAM, Blender is able to render such videos, but is still not fast enough to render the entire video in reasonable time. Therefore, we'd like to use both CPU and GPU, and distribute frames to be rendered across nodes.

We have Xeon Phi's as well, which we'd like to use as CPU-rendering within blender, but with a high number of threads (over 100).

In practice, we'd like to setup a workflow where we render a scene under multiple conditions and parameters, eg to generate ground-truth for big-data apps such as machine learning and computer vision as in 3D reconstrution and Video Understanding.

Another application would be to devise real-time computer vision systems to process the videos, which is effectively inverse computer graphics.

Single node CPU parallel rendering

  1. Select the cycles engine
  2. On the performance panel of render context, set the number of threads.

Optimizing parameters

Choosing the block size

Single node GPU parallel rendering

  1. Install NVidia CUDA on a linux or Mac OSX node (follow a post on stackoverflow by Gandalf)
  2. If you succeeded, then GPU will showup in preferences:
  3. Go to Preferences - System. Compute device must show CUDA (likely OpenCL too). Select that.
  4. On the render context, set Compute Device to GPU. Make sure the Cycles Render engine is selected.

Optimizing parameters

Choosing the block size

Multiple nodes

We wrote scripts on a software package called bfarmx to control blender using Netrender to distribute frames. These are still in a very early experimental phase. Dowload them at:

http://github.com/rfabbri/bfarmx

Installing Blender on a Cluster

The easiest way was to download the self-contained binary tarball from the downloads section of the official website (it runs on most distros), then install that on the cluster, either in the user NFS home folder (install once for the entire cluster), or system-wide at each node.


See Also

Contact

Douglas Pio, Hilton Guaraldi and Ricardo Fabbri