With the recent announcement of Adobe Creative Suite 6, there has been a lot of confusion surrounding the issue of Mercury Playback Engine and what GPUs it will support. The issues are complex and deep, and go back a ways. First, some background:
Adobe began shifting some of the burden of heavy computation in their pro-level applications to GPUs back in version CS4. By the time CS 5.5 rolled around, GPU support was relatively mainstream, using NVIDIA’s proprietary CUDA language. Using CUDA and a supported NVIDIA card in your system, you could significantly increase performance in certain tasks—most noticeably in Premiere Pro timeline scrubbing, real-time effects, and rendering for output. This technology is wrapped up into a nice package called Mercury Playback Engine (MPE), which is built in to Premiere Pro. Our own tests revealed that in some cases, enabling MPE could provide over 80% increase in rendering speeds.
Obviously, such a massive leap in performance is something that makes professionals sit up and take notice. In an era when spending $1000 on a CPU upgrade nets 20-40% performance gains, flipping a software “switch” and getting 80% increases without adding any hardware is crazy talk. I said it then, and I stand by this statement:
“If you’re doing video for a living, you absolutely need to have a Mercury Playback Engine-enabled workstation.”
CUDA and OpenCL
This is all pretty rosy so far, except for one detail: there are two major GPU vendors out there—NVIDIA and AMD—but only NVIDIA supports CUDA. Therefore, all previous iterations of MPE worked only on NVIDIA hardware. While this is fine in most cases (NVIDIA makes some pretty stellar professional GPU hardware), it’s always nice to have competition and options. AMD GPUs, on the other hand, use an open standard GPU compute language called OpenCL (which NVIDIA hardware can also run), but OpenCL support was missing from Mercury Playback Engine, even as of the Creative Suite 5.5 release.
This left a lot of video pros frustrated. Most particularly left in the cold were all MacBook Pro users, since you cannot buy a MacBook Pro with an NVIDIA GPU in it. If you wanted the extreme performance benefits of MPE, you needed a Mac Pro with a short list of NVIDIA GPUs, or a Windows workstation or laptop with a much more relaxed list of NVIDIA GPUs. Clearly, this wasn’t sustainable, and many people thought Adobe would rectify the situation in CS 5.5. When they didn’t, it was disappointing, but rumors swirled that it was coming in CS6.
Many video professionals have been sitting on the fence, waiting for Creative Suite 6 to be released, before they build or upgrade their video editing workstations. When CS6 details started coming out, AMD owners and fans started breathing easier since it was clear that Adobe Creative Suite 6 was indeed going to support OpenCL for many of its GPU compute operations (from advanced blurs and other filters in Photoshop CS 6 to basic screen redraws in many of the CS apps). It was therefore safe to assume that Premiere Pro and MPE would support OpenCL as well.
And they do. With the big announcement on Monday of Creative Suite 6 and Creative Cloud, Adobe proudly touted that OpenCL support was now available in Premiere Pro 6 and Mercury Playback Engine…
But only on Mac.
The plot thickens
The Mercury Playback Engine page shows a long list of NVIDIA cards that are supported—but only two AMD cards. Neither of the AMD cards are their professional line (FirePro), and oddly, neither of them are Windows parts. They are the 6750M and 6770M, on MacBook Pro only. What about Windows users with AMD Radeon HD cards or AMD FirePro cards? Nope. No support.
When I published the Creative Suite 6 announcement and mentioned that, I got an email from Edelman—the PR company that represents Adobe—touting the MPE and MGE (Mercury Graphics Engine, the GPU acceleration component of the other CS apps besides Premiere) and its support for AMD products. This is where it gets nitpicky. MGE does support OpenCL fully, and therefore it supports all the new Photoshop filter performance enhancements (and any other app that uses MGE), but Mercury Playback Engine, in Premiere Pro, does not support OpenCL on Windows. Only on Mac.
This is passing strange. If OpenCL is implemented, and it works across the board through MGE, and it works with AMD Radeon products, why then is it essentially ‘turned off’ on Windows?
The Edelman email was quick to link me to the following blog post from AMD: Adobe and AMD Bring OpenCL Powered Real-Time Editing and Effects to Adobe Premiere Pro CS6, but as soon as you read that you see that they’re only talking MacBook Pro. Further digging reveals that Adobe’s Todd Kopriva has curtly and unequivocally stated: MPE OpenCL support will not work on Windows.
Reading on the Adobe forums, you begin to see that users are pretty disappointed in this seemingly innocuous tidbit. It’s actually a pretty big deal. There’s really no technical reason why, considering OpenCL already works on Windows and on Radeon hardware, it cannot simply be implemented in MPE.
So it begs the question, then: if it’s not technical, why? There are two config files in the Adobe Premiere Pro CS6 installation folder called “cuda_supported_cards.txt” and “opencl_supported_cards.txt”. The CUDA file has a list of NVIDIA GPUs in it. The OpenCL file is empty. I went so far as to try many different variations of my Radeon product name in the config file, but no matter what I did, Premiere Pro refused to turn on MPE for my PC.
There’s not much use in speculating. I’m hoping to get a straight answer from either Adobe or NVIDIA as to why you can only use MPE on NVIDIA hardware in Windows.
There is a ray of hope, though. Adobe’s engineering manager for Premiere Pro, Dave McGavran, stated in the Adobe Forums:
Porting MPE to OpenCL was hard, very hard! It took an entire cycle to get it to work. It isn’t just about the engineering effort it is about the testing effort and making sure it will work. We worked very closely with partners to make this happen. We focused on the mac first because there aren’t any NVidia cards in the apple store configurations for our customers here. We focused on the macbooks because many of our customers use these products. We developed the OpenCL code so that it can in the future possibly work on windows. We are very interested in making sure our product uses all the compute power that your computer has. No conspiracy theories just time and effort and balancing all the work we need to get done so that you can have the product you want to use to make great video.
Perhaps after a few patches and upgrade cycles, AMD users will be able to turn that switch “on”.
If you’re a video pro and you were waiting for CS6 to build or upgrade a Windows-based editing workstation or laptop, you can proceed with the knowledge that you had better buy NVIDIA hardware for it if you want to use MPE. Those who have invested in FirePro or Radeon HD for their video work are out of luck, at least for now.