Accelerating iray with the NVIDIA Quadro 5000
First of all, I'm a software guy. I use software, I write about software and I sometimes even dream about software, but I'm also not stupid. So, when NVIDIA contacts me and says we've got a graphics board that makes your software a lot faster and we'd like you to try it out, my answer is a quick 'yes.'
The board they are referring to is the NVIDIA Quadro 5000. This is a professional level board with 2.5 GB of memory, and enabled with CUDA. It is this technology that is responsible for speeding up software including 3ds Max, Maya and many of the products in Adobe's Creative Suite, especially the Mercury Playback Engine contained in Premiere Pro.
[size="5"] The Installation
As a digital designer, it is my job to make images and animations look great using the amazing software at my disposal. This is made possible using the large black box that sits faithfully at my side. This black box doesn't get my attention at all unless it occasionally starts whirring when a fan turns on or as a place to support my important papers. Needless to say, I'd be more interested in alphabetizing my CD collection than cracking open my computer to install a new graphics card. But the promise of not only faster renders, but much faster renders, makes it worth the hassle.
The NVIDIA Quadro 5000 graphics card, shown in Figure 1, is not for the faint of heart. It is a sizable card taking up two PCI slots and the entire card is encased like a prototype car coming out of Detroit that screams, "serious stuff is found under here." I was able to get the card to fit, albeit tightly, in my standard Dell Studio XPS box, but I had to remove the hard drive in order to get the monster placed.
Once the graphics board was installed, my machine booted right up without any trouble and after a quick download of the software drivers from NVIDIA's web site, I found my machine was working just as before the installation ordeal. With business as usual set in, I started about my work keeping in the back of my mind the fact that I now had a monster GPU ready to show its stuff.
[size="5"] First Impressions
Having the killer graphics board installed and working without messing up my system relieved my initial hardware fears, so my next thought was, "let's see what this thing can do." I immediately opened the latest version of 3ds Max and loaded a recent NVIDIA iray scene that I created.
Before installing the Quadro 5000 card, I rendered this sample scene by simply setting iray to do an Unlimited render before retiring for the evening. I remember checking on the scene after an hour or so and it looked quite good, but I could still see a few artifacts.
I rendered the same sample scene, shown in Figure 2, after installing the Quadro 5000 and I could tell it was cranking on the scene because I noticed a delightfully pleasant humming coming from my computer internals. I also noticed that the same quality of the final render was achieved while I watched in a matter of minutes instead of hours like before using the Quadro card. While I realize this isn't the typical quantitative benchmark that gives precise percentages, such as 10X faster; for me it means that I can render a scene without having to leave the computer.
[size="5"] Tackling a Monster Project
After testing out a relatively simple project, I decided to throw something with a little more weight at the new board. For my second render, I loaded a kitchen scene with lots of shiny, reflective surfaces made of stainless steel, porcelain and glass with lots of lights bouncing all over the place. The scene is actually an animation rendered in high-dev. For this test, I decided to set iray to do 100 passes per frame to see what kind of quality I'd get in a reasonable render time.
The most complex frames of the animation took just over 7 minutes to complete the full 100 frames and the quality was a fair approximation of the ambient occlusion and all reflective surfaces, but the overall image was still grainy. After re-rendering the same frame set to 500 passes, the image was fairly close to photo-realistic with only a little graininess in the deep corners, and it took 44 minutes to render. Still a huge improvement from the earlier project render time, which took a over 24 hours for a 15 second animation.
After several more test renders of my personal work, I decided to try out some of the scenes that NVIDIA provided me with, including a detailed Bugatti Veyron sports car, shown in Figure 3. The iray renderer for this car was set to do 500 passes at a resolution of 1300 by 900. The resulting image, shown in Figure 3, took just over 5 minutes. It also provided an excuse for me to include such a gorgeous image in this article.
[size="5"] Understanding NVIDIA iray
The speed and power behind using the Quadro board to render iray scenes is based on the fact that the Quadro board has been optimized specifically to work with iray by offloading much of the rendering process to the board's GPU. But, first we need to understand what iray is.
When 3ds Max was created, it was purposefully made from an open architecture that allowed specific modules to be replaced by other 3rd party plug-ins. This allowed a young company, known as mental images, to do their magic by replacing the default rendering engine used by 3ds Max with their own rendering engine called mental ray (spelled without capital letters, just like the company, which was acquired by NVIDIA in 2008). Mental ray used many advanced rendering techniques to improve the render quality dramatically, especially for realistic scenes with lots of reflections. Over time, mental ray has pushed the limits of rendering quality and speed and is available for many different rendering packages and platforms.
The one problem with mental ray is that with all its advanced settings, it can take a long time to figure out which settings give the best quality in the shortest amount of time. A problem that was exacerbated as the product became more and more complex. Mental images solution was to develop iray.
NVIDIA iray is frightfully simple. It doesn't include all the advanced settings found in mental ray, but lets you set the render time or the number of passes and it automatically produces the best possible image given those constraints. It also has an unlimited option that will continually refine the render until it is stopped by the user. The one downside to iray is that it will only work with a unique set of materials that are available in 3ds Max. If a default material is used, it is simply rendered as flat white.
3ds Max is a product developed by a team at Autodesk, and mental ray and iray is developed independent of Autodesk by NVIDIA. As mentioned, mental images was acquired in 2008 by a much bigger fish named NVIDIA, who has since put their team in contact with the brains behind the Quadro graphics card. The result is that it has been developed to take advantage of the latest features built into the Quadro graphics cards, enabling the software to render scenes with amazing quality faster than ever before and faster than any other graphics card.
[size="5"] The Magic Behind the Technology
So how is it done? The Quadro 5000 has a unit called the GigaThread Engine that lets several tasks be worked on at the same time including loading data into and out of the GPU while simultaneously doing some rendering processes. There is also a Scalable Geometry Engine that lets each cluster create triangles. By having each cluster work independently, the total throughput gets multiplied resulting in faster renders.
The Quadro series of professional graphic cards also includes a feature called Error Correcting Code (ECC) that detects many multi-bit errors and re-runs the data to eliminate the errors. This is especially important in some critical areas like engineering and medical imaging. This feature can be disabled if the error correction isn't needed to make the process even faster.
The Quadro 5000 has 352 Compute Unified Device Architecture (CUDA) parallel processor cores. It is the NVIDIA CUDA architecture that iray takes advantage of to speed its rendering cycles. The Quadro 5000 board also supports OpenGL 4.0, Shader Model 5.0 and DirectX 11. It is capable or rendering 950 million triangles per second.
[size="5"] Other Benefits and Features
The former mental images team, whose members are now are part of NVIDIA, isn't the only software product development team that has been working closely with NVIDIA engineers. The development team behind the Mercury Playback Engine found in the latest release of Adobe's Premiere Pro has also taken advantage of the optimized CUDA features. Quadro graphics boards allows video professionals to create and edit a large number of effects and transitions including color correction, blur, deinterlacing, compositing and blending, and play them back in real-time, which is a huge time-saver for video productions.
The NVIDIA GPU found in the Quadro board also can accelerate physics simulations via the NVIDIA PhysX engine. 3ds Max's MassFX system includes an option to enable Hardware Acceleration that offloads some of the physics processing to the GPU.
The Quadro 5000 graphics board also includes support for stereo 3D using the OpenGL stereo API. The NVIDIA Control Panel lets you set up and test out several different types of 3D glasses including the standard red/blue (anaglyph) glasses, and top-of-the-line active shutter 3D glasses like NVIDIA 3D Vision and 3D Vision Pro, the latter two of which NVIDIA recommends for viewing 3D games and applications. There is also a list of compatible games that you can play in 3D and a slide show of 3D game images.
In summary, I'm not at all surprised that the Quadro 5000 graphics board was faster than the default board that came with my system, but I had no idea just how much faster it would be, especially with iray scenes. When mentioning to Sean Kilbride, the technical marketing manager at NVIDIA for workstation product reviews, that this board would probably be great for games, he mentioned that this board is really a professional level board and would be overkill for games.
I found that the Quadro 5000 graphics board significantly speeded up my workflow and made me much more productive, especially when I got to the test render phase of a project. I found I could quickly find where I needed to spend more time without having to do a complete render. The end result is that I can get more projects done in a shorter amount of time, which is great news when I got yet another deadline looming.
You can find more information on 3ds Max and NVIDIA iray at the www.autodesk.com web site and more information on the Quadro line of professional graphics cards is available at www.nvidia.com/quadro.