Red Shark Technical Editor, Phil Rhodes, puts Nvidia's latest and greatest GPU through its paces, giving them a strenous colour correcting workout with Resolve and hardly booting up Elite: Dangerous at all.
One of the virtuous things about the interaction between computers and filmmaking is that workstations advance more quickly than the demands made upon them by film and television work. That's meant that post production can become gradually faster and more sophisticated, to the point that HD is now almost as easy as SD ever was. Much of this has been provoked by video games, providing an access to mass market R&D funds that no single industrial application could ever have matched and resulting in the graphics processing unit, or GPU. This is now used in effectively all mainstream gaming and graphical rendering devices because there's nothing that's a tenth as good for the money.
Naturally, progress has a price. In the early 2000s, people were looking at the output of games machines which were visibly grading their rendered images, and comparing the fundamental mathematics of the work that was being done to the techniques employed by companies such as Pandora and Da Vinci in colour grading. This was clearly recognised by companies such as Filmlight, who continue to build high-performance grading equipment around commodity hardware, an approach that allows performance to grow with the mass market. The eventual buyout of Da Vinci by Blackmagic is perhaps an indication of the inevitable results of a failure to properly engage with such fundamental changes in the price-performance ratio of computing devices; as if having been employed on big-budget productions makes a piece of technology immune to mathematics.
The current incarnation, Resolve, now in version 11, is therefore a great example of the sort of thing we might want to do with GPUs. The only problem with this is that Resolve can fairly be described, with all the affection in the world, as a beast of a piece of software, making demands on systems which seem stern in comparison to other software doing similar work.
Blackmagic's recommended turnkey workstations are a quick and easy solution, but the world already contains a lot of computers specified for editing. Many of them lack sufficient GPU resources or memory to make Resolve happy, but could be upgraded. So what does Resolve really need? Well, lots of memory, perhaps at least 16GB, and a big graphics card. For the purposes of this article, Scan supplied Nvidia's GeForce GTX 980, currently the top of the line in GPUs marketed at games enthusiasts, and the even more capable Titan Black edition of the same device, which has more memory. Installation was a breeze, with just a single screw to remove and one latch to undo to remove the old card, with the reverse procedure to install the new. Drivers downloaded quickly and painlessly from Nvidia's website (always a better bet than using the bundled CDs, for recency's sake).
Why GPUs work so well with colour correction
Since this is in some ways a review of a piece of computer hardware, it's worth a brief recap of why GPUs are so well suited to the sort of work required by applications exactly like Resolve.
Rendering the visual for a video game is a highly repetitive process, involving running the same calculations millions of times per frame on different pieces of the game world's geometry. Such a task is described as being “massively parallel”. The GPU provides a huge number of individually simple processors, allowing it to perform many of these calculations simultaneously. The work done by a grading application is similar: individually simple calculations performed on millions of pixels per frame, backed up by the blindingly fast memory held by the GPU for its own use.
This is where things become interesting. The thing that differentiates the GTX 980 from its simpler sibling, the GTX 970, is the number of active processors. It doesn't have eight; it doesn't even have sixteen, as we might find in a high end workstation. It has two thousand and forty-eight, alongside 180-odd other specialised subunits. And they're not slow; running at rates over 1.3GHz, they're as fast as computers were a scant few years ago. Okay; these individual processors are much, much simpler than a computer's CPU cores, but for simple operations, working together, their potential for massive heavy lifting is unmatched. The GTX 970, by comparison, has 1664, still a very worthwhile number. And one other notable feature of the 900 series is that by using the processor series Nvidia calls Maxwell it has fairly low power consumption as well, reducing noise and energy footprint.
Given 24GB of RAM and a GTX 980, then, let's consider some real-world performance metrics. To begin the basics, the custom curves corrector is (for some reason) notorious for causing performance problems in Resolve, but I was able to use more than thirty (but not quite thirty-five) sequential nodes of it on 25fps HD material. A curve, though, is a single-dimensional operation, requiring one lookup table per RGB channel. Hue rotation and saturation adjustments, however, require consideration of all the channels simultaneously, requiring, theoretically, 10243 or 1,073,741,824 values. Since this is impractical, values must generally be calculated on the fly, requiring trigonometry, or based on interpolation of a lower-resolution three-dimensional lookup table – and in reality, this situation will be worse, since the software must work internally at more than 10-bit resolution.
This proved slightly difficult to test. I ran out of room in Resolve's node viewer when adding an endless chain of hue alterations before things started to slow down at around 50 sequential nodes of alternating hue and saturation adjustments, suggesting that Resolve does some sort of caching for simple sequential operations.
So let's consider something more taxing. A standard performance test for Resolve for a while has been blur, the mathematics behind which we wrote about a while ago. MyTherapy's test of the most modern Mac Pro, with its dual AMD FirePro D500 GPUs, allowed about 20 sequential blurs before the system began to run out of steam. I started to see rate dropoff at thirty, meaning that a £450 graphics card makes my modest, years-old workstation 50% faster than a brand new £3300 Mac Pro for at least some tasks.
Putting a qualifier on each node should prevent the software from boiling a sequence of hue rotations and saturation tweaks down to simpler operations, however. That approach yielded a limit of around 26 nodes before the green lights started to go out, although that was with no denoise or blur on the qualifiers. A more real-world situation involves small amounts of blur and denoise. With the GTX 980, Resolve could handle six or eight serial nodes with blur and denoise of 2.0 and a custom curve on each one.
Making things really hard for the GPU
Undeniably Resolve's most taxing operation, however, and one that's available only in the paid version, is temporal noise reduction. This is certainly an advanced topic, taking advantage of the similarity between adjacent frames to determine which high frequency picture information is detail and which is noise. Referred to by at least one video engineer of my acquaintance as “tantamount to witchcraft”, which of course we can only expect from a company such as Resolve's publisher, the noise reduction takes into account several frames. The artefact of winding it up too far is a rippling effect, suggesting that some sort of optical flow is being done. I mention this only because it illustrates the scale of the computational task involved. With “number of frames” set to 2, motion estimate type “faster” and motion range “large”, the GTX 980 will perform realtime noise reduction on 1080p25 material. It achieves about 18fps with “better” motion estimation, although this is easily reserved for final renders.
To save a lot of repetition, 4K material seems to be about a third as fast. This is slightly counterintuitive – it has four times the pixels so we'd expect a quarter – and suggests either experimental error, the influence of other parts of the system, or some sort of economy of scale. What's more difficult to characterise is the performance of the Titan Black card, which is barely differentiable from the 980. Without running either card out of RAM, we might not expect to see much difference, but for anyone doing (for instance) soft-body simulations, water physics, or high precision sculpted modelling in 3D applications, the more generous 6GB of RAM on the Titan is of particular interest.
Having looked at performance in Resolve, it obviously became important to spend a little time exploring the performance of other applications, such as Frontier Developments' epic space simulator Elite: Dangerous, a hardship easily endured by maximising all of the graphics settings and gawping at nebulae. A while later – possibly quite a while later – it was easy to tab back into Resolve and continue grading, secure in the knowledge that such a capable system is happy to run both at once. One genuinely interesting feature of recently Nvidia driver software is its ability to render 3D graphics at higher-than-display resolution to an offscreen buffer, and scale the result down, producing high-quality antialiasing. This could, presumably, be applied to the UI of 3D rendering software, though it might require specific support efforts. Needless to say, this is of no interest to your correspondent, whose interest in the technology lies solely in its application to filmmaking. The subsequent half-hour session in Wargaming.net's epic World War 2 armour simulator World of Tanks was therefore undertaken purely as a burn-in test.
One upgrade that's even easier to install than a graphics board is memory. Generally, memory goes in slots, will only fit one way, and requires no setup other than inserting the modules correctly. While it was difficult to run more than a couple of major applications simultaneously in the 6GB available before the upgrade, it's now possible to run Premiere, After Effects, Photoshop and Resolve simultaneously, alongside Gaijin Entertainment's epic World War 2 air combat simulator War Thunder. I know. I tried.
Enormous thanks to Scan Computers for their help in this review