In evaluating a computer system for video production work, a lot of attention is paid to the CPU, memory size, storage system, and various caches. Not everyone is aware of the impact the graphics card can have on a computer system's performance, or the details about how and why the graphics card matters. To that end, we're going to take an introductory look at graphics cards which support GPU computing—a key component in making your editing system fly.
A GPU, or Graphics Processing Unit, is present in all but the most entry-level video cards. “The GPU enables software to offload computational work (typically graphics-oriented) from the CPU to the graphics card,” describes Hector Guevarez, portfolio manager for Lenovo workstations.
GPUs are specialized computational processors designed to work with large arrays or matrixes of data where the processing to be performed is parallel in nature—meaning, the same calculation is being performed on the entire block of data. Video frames and the processing that occurs on them for scaling, opacity and effects are ideally suited for parallel processing. “CPUs are very serial—one task at a time,” states Sean Kilbride, technical marketing manager in NVIDIA's professional solutions group. “A GPU is very parallel in nature. Whereas a CPU may be six or eight cores, the GPU may have hundreds or thousands of cores, more typically referred to as stream processors, also referred to more generically as compute cores, or for NVIDIA, Cuda cores.” At the current high-end of the market, the AMD FirePro W9000 boasts 2,048 stream processors, and NVIDIA's Quadro K6000 GPU sports 2,880 Cuda cores.
AMD also has CPU/GPU combinations on one chip (called APUs) which provides faster interaction between the CPU and GPU. Instead of a separate video card, the video circuitry is in the same chip as the CPU.
“There are several different classes of graphics card,” adds Guevarez, “ranging from ones designed to handle 2D and entry-level 3D, through mid- and high-end 3D. The higher end you go, the more memory and processing cores you get.”
While GPU graphics cards can be had for under $100, the processing power of these cards is very limited (around 40 cores) and best for simple 2D graphics acceleration. The afore-mentioned cards from AMD and NVIDIA both have a price tag of over $3,000. But, there are a lot of options available between these two extremes.
Any video-oriented application is likely to benefit greatly from the use of GPUs. 2D and 3D modeling, ray tracing and animation, video production and editing all have data that can be processed in parallel, making them ideal for GPU integration.
“When doing real-time editing and compositing,” comments Andrew Baum, senior strategic alliance manager for AMD, “GPU processing enables the computer system to see the end result quickly and smoothly. Without a GPU, your video may not play back accurately frame-for-frame in your editing program, or your 3D model may take significantly longer to render. A GPU lets the technical user make good decisions quickly and proceed with their work.”
End-User Benefits
Most NLEs (non-linear editors) today incorporate some use of the GPU in their application, as well as 3D modelling software and motion graphics software that some churches also employ.
“Adobe has really picked up the torch with seeing what can be done with GPUs—how can we make the entire process more efficient,” states Kilbride. “Once it starts getting displayed on the screen, processing happens in the GPU if one is available. Color correction, blend mode, and many transitions and effects are all accelerated.”
“Adobe is rewriting code to take maximum advantage,” adds Michael Kaplan, manager of business development efforts in entertainment for NVIDIA. “Adobe applications have become very GPU-centric. While the initial GPU utilization in Adobe Premiere was written in NVIDIA's proprietary programming interface, as of the CC release, all applications utilizing the GPU use OpenGL and OpenCL, which are programming APIs that make them GPU-vendor agnostic.” Cards with at least 1 GB of RAM can be used by Adobe CC.
While GPUs can help greatly with performance, they also aren't the panacea that some may think.
“There's a big misconception about GPUs,” states Dave Helmly, senior manager for pro video solution consulting, Americas for Adobe. “It doesn't help everything. The CODECs (encoding and decoding software) that ship with Adobe CC do not take advantage of GPUs, nor does just basic playback. However, intrinsic effects like scaling, compositing mode, transparency, and more than 75 effects are all GPU accelerated.”
Helmly continues to describe what parts of Adobe Creative Suite make use of the GPU. Premiere is the largest beneficiary from the GPU, with many bundled effects written to take advantage of GPUs with OpenCL support. Premiere's color-coded timeline gives you a good idea of the GPU advantage: sections of timeline that were color-coded in red (indicating a need for high CPU utilization and potential risk of lower frame-rate playback) prior to a GPU installation will now see a lot more yellow and green (rendered video), indicating lower expected CPU loads and smoother playback.
Today, After Effects makes little use of the GPU, as the current program architecture does not lend itself to GPU integration. Its new 3D ray-tracing functions, however, are GPU-enabled, so those using After Effects to do 3D ray-tracing work will see significant performance improvement. Adobe is keenly aware that After Effects users are looking for more processing power using all available system resources, so watch for announcements from Adobe in the future. Photoshop also makes use of the GPU, and is implemented using OpenCL and OpenGL. Therefore, Photoshop users will benefit from both NVIDIA, AMD and Intel video cards with GPUs.
With other company's applications, the benefit varies as well.
“Avid media composer is about seven times faster if a graphics card is available,” states Kaplan. “Sony Vegas makes use of the GPU, and Final Cut X has implemented some degree of OpenCL integration. Of all of these, Final Cut takes the least advantage of the GPU at the moment.”
Live video platforms also take advantage of GPU systems. Miranda multi-viewers for showing multiple windows of video on one display are based on GPU systems from NVIDIA to get the video processing throughput needed, as well as live video switchers and production workstations.
Personal Observations
In researching this article, NVIDIA sent me a Quadro K4000 card for evaluation, which has 768 stream processors, 3 GB of internal memory, and a street price of $800. I was excited to see what sort of performance improvement I'd experience from my primary video production application: Adobe Premiere. As video production is my primary occupation, I spend a lot of time in Premiere and After Effects.
My base system is an AMD Phenom II six-core machine with 16 GB of memory and two 1TB RAID0 arrays as internal hard-disk storage. Until now, I had two graphics cards installed to support my three video monitors, with one card being an old NVIDIA card with 32 processing streams.
Playing back straight video, even when scaled, has never been a problem on my system. However, whenever I'd start compositing things, using transparency to overlay a color on top of video, or adding effects, my frame rate would definitely drop below the project frame rate – sometimes lower than one frame per second depending on the complexity of the project.
With the K4000 card replacing my two low-end cards (the K4000 supports three monitors directly), the first thing I noticed was the sound – or lack of it, to be more precise. This card is quiet! Even under heavy GPU workloads, the cooling system makes very little noise. I had tried a 192-core consumer-class graphics card manufactured by Gigabit a couple years ago to see how the Sony Vegas video editing application would make use of it (and unfortunately, Vegas at that time gave so many wrong results with GPU utilization enabled I wasn't able to make use it), and that card sounded like a jet flying through my office. I was expecting some noise with the K4000, and am blown away by the quietness of the card.
Adobe Premiere CS6 ran significantly faster with the K4000. For one project that I have underway, the 25 minute timeline used to be color-coded almost 100% red, with stilted playback. Many parts of the timeline have a semi-transparent red slide composited over H.264 video, with color correction added to the video, and another slide with drop-shadowed text composited on top. When playing the timeline with my old graphics cards, playback was very stilted, and all six cores were maxed out at 100%. With the K4000, playback was smooth, with all six cores under 50% utilization due to offloading the work to the GPU. And Premiere has generated 100% accurate results when using the GPU—I've had no issues using GPU-accelerated code with this application.
In a recent After Effects project where I used ray-traced 3D text, frame renders went from close about 30 seconds per frame (ludicrously slow when you have to wait 30 seconds every time you reposition the scrub line) to a couple of seconds.
Will a serious GPU card help your system perform better? That depends. First, is the software you run written to take advantage of a GPU? If not, there's no point in making the investment. For example, if you use Adobe After Effects all day with little use of the new 3D features, don't waste your money on a GPU card until it makes more full use of the GPU. Second, what other bottlenecks impact your performance? You may benefit more from an upgrade to SSD storage over the addition of a GPU, if access to your data is your bottleneck. And if you're doing basic 2D work that would benefit from a GPU, the $3,000 card may not give you any more performance boost than a $400 card if the processing needs of the application are modest.