Blender is a popular Open Source 3D modeling system. Recently the question was asked can one use the Flux cluster for 3D rendering. We were curious about this, and we wanted to support our students. Clusters like Flux though are normally built with scientific use in mind and we didn't know if what we had would support Blender. Turns out this was all easier than we thought.
blender-batch.sh
GPU Rendering with CYCLES and CUDA
What we found though is we wanted to use the CYCLES render, and not only that we wanted to run it on the FluxG GPU service. Why GPUs? Lets us use the current standard CYCLES benchmark file and compare GPU to CPU performance.Blender Rendering Benchmark (mpan) |
Hardware | Tile Settings (XxY) | Time | Speedup |
---|---|---|---|
1 CPU E5-2670 | 16x16 | 10m:17s | 1x |
4 CPU E5-2670 | 16x16 | 2m:48s | 3.7x |
16 CPU E5-2670 | 16x16 | 46S | 13.4x |
1 K20X GPU | 256x256 | 40S | 15.4x |
2 K20X GPU | 256x256 | 24S | 25.7 |
4 K20X GPU | 256x256 | 18S | 34.3x |
Running Blender Better
So we know GPUs are much faster, but Blender when ran in the normal batch mode above ignores any settings you pass in a python input. We want to be able to control all GPU/CPU settings on the cluster and not open the GUI each time. The trick, is to read your blend file from the Blender Python API and then change settings. Look at the tooltips in blender this API is powerful, everything can be controlled from Python.
No comments:
Post a Comment