If geeks love it, we’re on it

Adobe Premiere Pro CS6 and the AMD GPU support conundrum

Adobe Premiere Pro CS6 and the AMD GPU support conundrum

Mercury Playback Engine and AMD

Software only? But I thought.... sigh... okay.

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”.

Final thoughts

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.

Comments

  1. RyanMM
    RyanMM Let's be frank - This is fucking bullshit. Since 2006, since the days when Apple admitted that their proprietary hardware could not keep pace with what AMD and Intel were churning out, there has not been a single reason for segmenting software support based on the Operating system level.

    Adobe is being lazy, stupid, or asshatted depending on what level of credit you want to give their programmers. Supporting the dozens of iterations of AMD hardware on Windows versus the two iterations of AMD hardware on Apple, factoring in marketshare, I can't see a case where this makes sense except in some detached dunderheaded boardroom filled with people who couldn't tell a computer from a cash register.

    I studied graphic design. I cut out of class early, leaving the Mac workstations go go home and be far more productive on my homegrown Pentium III because I realized that performance trumped platform any day of the week.

    If Adobe is going to be a slave to platform and ignore performance on systems that can be host to it, they're going to leave themselves vulnerable to a competitor who's less shortsighted than they are.
  2. PirateNinja
    PirateNinja The only people who know the technical feasibility of this are the developers at Adobe, but we can all speculate as much as we want.
  3. RyanMM
    RyanMM Let's leave the apologism to those Adobe devs, @pirateninja. We don't need to defend them by proxy.
  4. UPSLynx
    UPSLynx This very well could have something to do with the fact that OpenCL, as great as it may be, is a technology originally developed by Apple. Whether this is a platform bias or an original compatibility is anyone's guess, but having seen what I've seen with OpenCL on FirePro on PCs, I'm inclined to think it's the former.

    AMD has been ready to roll with OpenCL on their GPUs for years now. YEARS. The support now, in 2012, is embarassing, but the capability is more than there. It's frustrating. AMD can do it, but software companies have dragged their feet. Many of them have done so because of deals they have with CUDA/NVIDIA.

    I wouldn't be surprised if I found out this CS6 stuff is nothing more than the same.
  5. PirateNinja
    PirateNinja It could be that Adobe's platform is incredibly hard to integrate with OpenCL, so difficult that they just don't find that it is worth doing.
    Or yes, they have may some exclusivity contract with nVidia.
    Who knows. I'm not defending anyone, I'm just not jumping on the speculation rage train.

    It sucks, we can all agree on that.
  6. primesuspect
    primesuspect Did everyone miss this?
    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”.
  7. PirateNinja
  8. midga
    midga Ultimately, I imagine that Adobe sees that the reality of this is in the market-shares. Yes, getting it fully developed and tested for Windows AMD application would increase that by the number of people who refuse to shuck the $$ for a hardware change, but to get all the people who refuse to change over to a Windows machine from a Mac instead first was almost certainly the better call. Not only would it be more expensive to make the latter change, but a Mac user is much less likely to change to Windows than an AMD user to change to nVidia.

    When you only have so many people and so many hours to do your development and testing, and when you have enough integrity and pride to fully test your product to the best of your ability (I refuse to believe any software can be guaranteed released bug-free), you can only get so much done. There's no doubt in my mind they made the right call on how to spend those hours. I also don't doubt that they'll now be spending their hours developing and testing for Windows support to increase their customer-base even further.
  9. photodude
    photodude It's amazing that Adobe finally succeeded in porting MPE to openCL; but not only did it take a full cycle, it's not as fast or robust as CUDA based MPE according to the reports I've read. This performance difference could be due to the differences in OpenCL vs CUDA or Apple vs PC. In the long run this will be the best thing that could have happen to OpenCL.

    Since 2004 Adobe has been supporting new technology development on PC first (64bit software, cuda MPE, etc), partly because Apple has slowed much of it's development of new hardware and software, and partly because windows has a much bigger market share. To me this is more evidence that Apple is moving deeper into consumer product lines and drastically reducing development cycles on their high end Pro lines. Apple may even reduce or end the pro line someday (~5-10 years) because of development cost.
  10. primesuspect
    primesuspect The move towards the cloud and mobile "pro" apps says a lot about Adobe's thoughts regarding Apple's future. It's not a stretch to imagine a time a few years from now when Apple says, "we're done with OS X and desktop and laptop PCs" and just makes iPads and iPhones. Adobe sees the writing on the wall and is making Creative Cloud pre-emptive: Do what you can on the road, do as much as possible on the mobile device, do NEW things on mobile devices that aren't practical or possible on desktops, then when you need to finalize/print/edit/publish, take it to the "pro" app on the desktop.

    Whether that desktop is Apple or PC shouldn't matter. As photodude says, Adobe is really, really good with this stuff.
  11. Garg
    Garg I thought OpenCL was an interface that didn't care what hardware it was executed on? I don't understand why only two AMD chips are supported on Mac, or why Todd in the Adobe thread talks about adding cards to the compatibility list individually. I figured it'd be more like "Card supports OpenCL? Compatible!"

    I'm ignorant enough on programming that I could have this all wrong, but my guess is either the NVIDIA conspiracy hypothesis, or the developers are fixated on getting users the perfect experience or none at all.
  12. Frank1996 I studied a bit about CS6 and I got something pretty interesting. Premiere Pro uses GPUSniffer.exe in its folder to check video card specs and it will return a value indicating if the card supports CUDA. I tried it on my friend's dell workstation with quadro 4000m and I get a return code 7, which I believe is the code for CUDA accl. The code I got on my notebook with a HD 6990m is 14, which left Hardware Accl disabled. Actually, GPUSniffer can be easily overrided. I wrote a simple piece of program in C++ to return integer 14 and replaced the original GPUSniffer, and PR started perfectly fine(without Hardware accl of course). I tried to return integer 7, but Pr just refused to start(Because AMD cards have no CUDA).
    I BELIEVE THAT THERE MUST BE A CODE FOR OPENCL ACCL.
    You can actually try it. To check out your code, run GPUSniffer in a cmd window and then type %errorlevel% and hit ENTER. If you are a programmer, you can create a console program to return specific integers. If you or one of your friends have a MBP with HD 6750m or 6770m. PLEASE RUN THE GPUSNIFFER IN TERMINAL AND TELL ME YOUR RETURN CODE. Thank you in advance. My email is gyf304$sina.com (Replace $ with @), contact me if you know or want to know anything.
    IF ADOBE JUST SIMPLY DISABLED OPENCL, ENABLING IT WILL BE SIMPLE.

    Frank1996
    Greetings from China.
  13. primesuspect
    primesuspect Good call, Frank. I hope someone with a Mac will chime in here soon!
  14. arggggg This is complete rubbish. I've been running around leaving questions on various PR articles asking what the **** is going on with opencl support.

    Let's be honest, no professional uses a macbook, pro or otherwise.


    I'm 99% sure this is related to some contract with nvidia.

    I think most of you have forgotten what went on with CS4 gpu acceleration. Then, it somehow disappeared. Now, while using an open standard in an only slightly (let's be realistic) more complex implementation, it's somehow limited to...laptops!?

    What the F? Maybe adobe is helping to develop opencl support for FCP-X....


    MPE aside, we have the oh-so-clever cuda only AE ray-tracing.

    I already use vray-rt on my AMD card (outperforms cuda gpus that cost twice as much)AND supports crossfire. So, I don't want to hear some adobe bullshit about "end user experience" and " OpenCL coding and testing is so hard!!". I've seen this Todd Kopriva chap and some of his posts. Frankly, I'm fairly sure he doesn't have a clue about the actual reasons and uses macs exclusively

    To the one of the previous posters: You are pretty much correct. OpenCL is OpenCL, it takes advantage of available compatible hardware.

    To Frank1996: I wouldn't be at all surprised if a simple return integer modification enables support. Of course, adobe assumes we can't handle reverting to previous files/code in the event of instability...That's just too unimaginable for a company that brought us such a wonderful download manager and turned .pdf into one of my most-hated formats.



    Argh...I guess I'm stuck using a real 3D design program that works properly, because the ray trace render engine in cs6 is slow as **** on ALL CPUs and still slow as **** on cuda.

    Adobe, stop ****ing around worrying about children and their incredibly under-powered laptops.
  15. arggggg Okay, here's what I've found so far:

    1.: Run gpusniffer.exe (in your main Premier Pro program folder) either by manually cd\c: etc. in cmd (command prompt) OR just drop the .exe directly in a cmd window.

    2.: Take note of the returned name under "Render:".
    In my case, the value/name is the same as gpu-z.

    Simply copy the exact name (capitalization included) into the opencl_supported_cards.txt, also located in your main Premier Pro install folder. Save the changes and test.


    So far, only 5770's are confirmed to be working at this point. My 6870 returns a "LoadLibrary "n" failed!" error and I am subsequently not able to enable hardware acceleration.

    I'm fairly confident that this can be resolved easily if a few of us do some testing. Also, knowing what loadlibrary "n" actually is will clear things up a great deal.

    Anyways, I will return to this article with more information, it's the best article on the silly opencl adobe behavior. I hope others have success/share their findings.
  16. stevefal
    stevefal I followed Frank1996's lead and wrote a console app replacement for gpusniffer.exe, to return alternate values. I then and tried using process of elimination to find one that works. I didn't get PR CS6 to enable hardware rendering, but I at least found other values that allowed PR to run.

    BTW I'm running an ATI Radeon HD 5750, which results in '14' being returned by gpusniffer.exe. I have OpenCL drivers enabled according to GPU Caps Viewer
    The following values returned by my fake gpusniffer.exe, allow PR to run, albeit without GPU acceleration: 1,2,4,6,8,10,12,14

    These values result in an error message from PR upon start, after which it exits: 0,3,5,7,9,11,13,15,16. Anything higher than 16 also fails.

    The error is "Adobe Premiere Pro could not find any capable video play modules. Please update your video display drivers and start again."

    So it seems something else is needed besides just returning a magic value.
  17. primesuspect
  18. Andris I have a HP laptop with HD6770m, cs6 doesnt support. So what shuld I do to help U guys?
  19. 505thzajcev Your HP doesn't have Mac OSX v10.7 or later, right?
  20. Tushon
    Tushon
    Your HP doesn't have Mac OSX v10.7 or later, right?
    It wouldn't, because Apple doesn't allow non-Apple PCs to have OSX. Hackintoshes not with standing, he was definitely referring to Adobe on Windows given his numerous references to Windows users in the article :D
  21. Martin I really really hope Adobe comes out with support for OpenCL in windows with their next Premiere.
    I took a gamble and bought a laptop with 7979 on my notebook instead of a GTX. The GTX680 was much more expensive and they don't work as well with Photoshop.

    I have a Quadro on my desktop at work where I'll be doing the majority of video work, but I'd LOVE to have MPE on my personal laptop so i can work from home.

    Any new news/rumours on this?
  22. TheDragonLord
    TheDragonLord I'm presently working on an AMD Opteron based Workstation/Server.

    In order not to overload the message board with technical info, here's my spec sheet: http://dl.dropbox.com/u/54497908/System Stats/System Info.txt

    Since I'm working with a "pro" system and workstation parts, I had no idea that I'd be unable to utilize the acceleration features in Premier Pro.

    I strongly suspect Adobe is in collusion with Nvidia, but just isn't saying so. They are not saying anything about it, that's for sure. Most likely, Adobe is getting a cut from Nvidia for the hardware, just like Intel is from HP to continue producing (and upgrading) Itanium processors.

    In the end, I'm not particularly sure what can be done. I've tried running GPUSniffer.exe, but all I got back was:

    C:\Program Files\Adobe\Adobe Premiere Pro CS6>GPUSniffer.exe
    LoadLibrary "n" failed!
    LoadLibrary "n" failed!
    --- OpenGL Info ---
    Vendor: ATI Technologies Inc.
    Renderer: AMD FirePro W8000 (FireGL V)
    OpenGL Version: 4.2.11949 Compatibility Profile Context FireGL
    GLSL Version: 4.20
    Monitors: 1
    Monitor 0 properties -
    Size: (0, 0, 2560, 1440)
    Max texture size: 16384
    Supports non-power of two: 1
    Shaders 444: 1
    Shaders 422: 1
    Shaders 420: 1


    --- GPU Computation Info ---
    Did not find any devices that support GPU computation.

    Not exactly helpful. I placed the line "AMD FirePro W8000 (FireGL V)" into both "cuda_supported_cards" and "opencl_supported_cards". I've tried variations of the name, but to no avail.

    Just to clear things up, I'm using Adobe Cloud, but each program is physically installed on my drives. I'm not sure exactly what is to be done here, but I'm thinking that Adobe has specifically excluded the hack for the new W-series of Workstation processors. That, or I'm just missing something. :/

    If anyone has any ideas, please shoot me a message/email/etc. ceo.vanderwallbrowndesigninc@gmail.com

    I'm starting up a business to help pull my family out of sinking debt and I came to realize my investment into the AMD workstation cards (far superior in pretty much every way--4+ Teraflops for BOINC!), but I'm pretty much screwed if I can't even get premier to work correctly. The damn audio keeps getting unsynced, because the video playback is slow.

    I figured with parallelization this shouldn't be an issue and it came down to the software not recognizing the GPU for acceleration.

    If I have to learn to code just to hack my copy of Adobe Premier to get my GPU to work, damn it!, I will!

    But, if someone else has already accomplished this, please let me know. I'd really like to figure this thing out. I'm also going to try running premier through that Cuda emulator that's been floating around for a few years.

    In any event, thanks for any help that can be offered and to all the help already offered! You all Rock! :)

    -Christopher
  23. TheDragonLord
    TheDragonLord Meh... April Fools from techpowerup. :/ Darn. So much for emulation. -shakes head- Well, if anyone has any ideas, please let me know.
  24. Garg
    Garg Latest update, "the next version of Adobe Premiere Pro has been optimized to take full advantage of a wider range of AMD GPUs"

    http://www.engadget.com/2013/04/06/adobe-premiere-pro-windows-opencl-support/
    The next version of Adobe Premiere Pro with support for OpenCL harnesses the power of discrete AMD graphics cards and AMD A-Series APU's to enable real-time edits, application of dozens of effects, support for the new Lumetri deep-colour engine, and multi-stream and mixed format accelerated workflows with AMD Eyefinity multi-display technology.
  25. mertesn
    mertesn So disappointed the "next version" is a subscription model. MPE on AMD GPUs is the only feature in Creative Cloud that I find compelling. It's just not worth the perpetual licensing fee I'd have to pay to be able to use it :/
  26. primesuspect
    primesuspect So you'd rather pay $2000 one time?
  27. mertesn
    mertesn No, I'd rather pay the cheaper upgrade price for a feature I want this time and still own the software at the end of the year if I decide I'm done giving Adobe money.
  28. PCman Has anyone found a workaround for this yet? I have CS6 Master collection + ATi AMD Radeon HD 6900 Series on a PC. Thanks.
  29. PirateNinja
    PirateNinja
    Has anyone found a workaround for this yet? I have CS6 Master collection + ATi AMD Radeon HD 6900 Series on a PC. Thanks.
    I am pretty sure you have to move to Adobe CC, here is a list of gpu configurations it supports:
    http://www.adobe.com/products/premiere/tech-specs.html

  30. primesuspect
    primesuspect That is correct. It wasn't "corrected" as much as a new version that does support AMD GPUs has been released. CC supports OpenCL.
  31. Kyle Maybe if you put the GPU renderer CPU into the opencl text file for CS6 it would work. I have a 5770 and my GPU renderer is Juniper which I put in to CC opencl and it registered it and worked. I don't know if it works for CS6, but try it out.
  32. Darren

    I installed CC7 alongside CS6.

    CC7's gpusniffer.exe recognized my Radeon 6630M (switchable) with 1GB dedicated and launched with OpenCL support without a hitch. Incidentally, %errorlevel% still returned a 14.

    I tried copying gpusniffer.exe and its 29 DLL dependencies over to CS6, just in case it would launch, but no dice.

    3 side notes:
    -the opencl file in CC7 now lists a bunch of code names for the ATI cards and mine, "Turks" was listed therein. "Turks" does not appear in the CS6 file.

    -gpusniffer.exe exists in the After Effects directory, but the output is different.

    -OpenCL support in Photoshop CS6 was greyed out before installing CC7, then was available and stayed available after removing CC7.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!