Wednesday, October 30, 2013

GPU Rendering Ready For Prime Time?


GPU rendering has been slowly advancing since arriving on the scene several years ago. While the technology can significantly redude render times, the widespread use of GPU-accelerated engines for final frame production rendering has yet to materialize. In this article, we'll take a look at how the landscape is set to change with Chaos Group's V-Ray 3.0 beta. We'll also talk about the recent launch of BOXX's unique GPU Edition workstations that can get you rendering faster than you’ve ever imagined.

Moving beyond a pre-viz tool

GPU rendering has always been a great tool for pre-visualization (and more recently) rapid visual feedback in the viewport. This particular use of GPU rendering is very important to many of your workflows. The ability to make lighting adjustments, shader corrections, and evaluate the look of animated objects in near real-time has lead to the creation of more complex and richer content.

Regarding final rendering, you'll often hear that "GPUs aren't ready" or "there are too many limitations to implement that into our pipeline." Both are valid concerns backed by valid reasons. That said, there is now good reason to re-examine a GPU-centric workflow.

V-Ray RT 3.0 Render Elements
What are the limitations?
Traditionally, if you were among the few who were implementing GPU rendering for production, you knew you had to live within certain restrictions and or implement specific work-arounds.

The most notable restrictions have been the GPU memory cap on the hardware side, and on the software side, the general lack of rendering features (motion blur, depth of field, render elements, etc.) that are required for final frame renderings.

Regarding the memory cap, the current highest capacity card on the market is the NVIDIA Quadro K6000 with a spacious 12GB frame buffer. This will allow those artists with larger datasets an opportunity to implement GPU rendering.

In terms of rendering features, V-Ray 3.0 RT includes some major upgrades. As many of you know, the ability to break up a rendering into specific parts, or passes, for use in the composting process, is a must have for many VFX studios. As you can see in the image above, you now have dozens of render elements that can be rendered on the GPU.

More in depth
We wanted to get more information on these new features so we got in touch with Vladimir Koylazov (Vlado) of Chaos Group to comment on this new release and the future of GPU rendering.

BOXX: Can you talk about the new features in V-Ray RT 3.0 and why you think this opens the door to final frame production rendering on the GPU?

Vlado: One of the main features that was missing for people to use V-Ray RT GPU for final frame renders was support for render elements. V-Ray RT 3.0 adds this capability, which means that it is now completely possible to render final frames.

BOXX: Aside from the memory limits of the hardware, what other obstacles stand in the way of widespread adaptation of GPU rendering for final frame production?

Vlado: The GPU is still very tricky to program; you can add one little piece of code and find that your GPU program now runs 30% slower. So you have to go back and debug this, and debugging the GPU is very tedious. This makes it difficult to add new features to the GPU. Also, for the moment there is no way for our customers to extent the GPU renderer with custom shaders, lights and geometric objects, like they can do with the CPU renderer. 

BOXX: This article focuses on V-Ray RT 3.0 for 3ds Max. Are there any exciting features in the works that you can talk about, either for 3ds Max or other applications like Maya?

Vlado: We have implemented a number of improvements to the GPU renderer, including support for render elements, better noise reduction, raytraced viewports (in Maya) and others. We will continue to add new features throughout the development cycle of V-Ray 3.0.
BOXX: How do you see the future shaping up for GPU rendering? Given the new features in RT, do you see a point in the near future where the GPU completely replaces the CPU in the rendering process or are we there already?

Vlado: Many of our customers already use GPUs for rendering. However for more complicated pipelines with custom tools and shaders, the GPU does not yet have all the needed features. Further on, the CPUs (and our CPU code) are also improving. It will definitely be interesting to see how the hardware will develop in the future.

SEE IT IN ACTION

Take a look a the video above from BOXXLabs which demonstrates render elements on the GPU. The video also compares GPU rendering to CPU rendering and shows general workflow advantages. The demo was done on a BOXX GPU edition workstation with four NVIDIA K6000s.

GPU Workstations for GPU Rendering
BOXX has recently launched a series GPU edition workstations that support up to four x16 dual slot GPUs. These system support a variety of configurations including NVIDIA Maximus as well as cards like the GTX Titan. See below for more information.

4920XTG
4925GPU
8950
Configure
4920 XTREME GPU

Supports 4GPUs
Overclocked i7 (4.5GHz)

Configure
3DBOXX 4925 GPU

Supports 4 GPUs
Single Xeon CPU
(up to 12 cores)

Configure
3DBOXX 8950

Supports up to 4 GPUs
Dual Xeon CPUs
(up to 24 cores)

















Conclusions
Depending on the complexities of your workflow, you might be able to implement GPU accelerated rendering for final frame production today. With the introduction of render elements in the software and large frame buffers on the hardware, there has never been a better time to utilize GPUs in production.

If your pipeline is such that GPU final frame rendering isn't an option, then you can still take advantage of the technology in the form of ray traced viewports and other pre-visualization tools.

Finally, if you need to decrease your render times but know that a GPU workflow is not an option, BOXX is the industry leader for CPU based rendering solutions. If you have questions, feel free to get in touch with us below.




CLICK HERE to consult with a BOXX performance specialist, or call 1.877.877.BOXX

No comments:

Post a Comment