In the battle of GPGPU API’s, a lot of acronyms and words are being thrown around. nVidia pitches its set of robust tools such as CUDA language, Nexus development environment, GPU acceleration for open-source Bullet and proprietary PhysX physics engines and many more. From other side, AMD speaks OpenCL through every vocal cord and pore of company’s skin, Apple is also the forbearer of OpenCL and its “openness”. Intel was supposed to be the third [fourth?] player with Larrabee and its native set of compiler tools, but as we wrote back in early October, the project’s first silicon ended up as a dud.
Thus, if you’re multi-billion dollar software developing/publishing company Adobe Systems and are developing evolutionary engine for your video editing suite, what to select from all the choices above? In a recent blog post by Adobe’s video guru Mr. Dennis Radeke, a lot of things came to light when it comes to an engine that will drive next-generation of Adobe Premiere Pro [a part of Creative Suite 5].
In the post, Dennis went on to explain “What is the Mercury Playback engine about? In a word, performance! It makes Premiere Pro do cartwheels and flips and barely breaks a sweat. It’s like rocket fuel for your car. It’s flat out incredible…” while we might say that this statement might be over-enthusiastic, read on: “In my first test of Mercury, I dropped several P2 clips on a timeline, made them picture-in-picture and looked to see if there were any dropped frames during playback…nada. I added more clips, bringing it up to eight or nine on my HP XW9400 with 12 cores of AMD goodness… Think it’s the CPU? No! It’s only being used at about 20-30%. It’s GPU! I keep going and there is no hesitation in Premiere Pro. Okay, lets add some color correction to each one and while we’re at it, lets drop in some blurs [that will stop it right?] Still playin’ like buttah!”
P2 clips are short for Panasonic HVX-HPX [P2] Solid State video camcorders, but you can read justified enthusiasm in his post. But the real thrill came when they loaded several RED 4K files and play with them in real time. In order to do that with a RED 4K file, you need to spend around $5000 in order to get a custom ASIC – RED Rocket. According to Dennis, key to this stratospheric performance jump was the decision to go “64-bit only” in the next version of Premiere [part of Creative Suite 5] resulting in “the best CPU utilization in the business, 64-bit native goodness throughout and you have the insane performance of the GPU backing you up to make more things possible at once than ever before.”
In order to harness the power of GPU, Adobe took one step back, though. Unlike the OpenGL effects Adobe was using in Creative Suite 4, resulting in sub-optimal acceleration for some GPUs, Premiere Pro CS5 is being built using nVidia CUDA software architecture. Yes, this singlehandedly gives the Adobe CS5 market to nVidia but given the share of nVidia Quadro boards versus ATI FirePro – we can’t say we’re surprised.
The reason for this decision wasn’t a move akin to “The Way It’s Meant To Be Played” affairs such as Batmangate or Assassin’s Creed, but something more simpler: Adobe needed a stable software toolkit to work on it and according to Dennis: “The 64-bit native code has been announced and now we bring in NVIDIA CUDA technology to be the icing on the cake and a powerful new engine to squeeze out performance in Premiere Pro. Before I wax philosophic on GPU, let me officially tip my hat to the incredible engineers at Adobe and their work here for the Mercury Playback Engine.”
If you are wondering what is the real deal with GPGPU API’s, there is a telling tale of why Adobe opted to base its Mercury Engine on nVidia’s CUDA language. While AMD will tell you that they’re all for open standards and push OpenCL, the sad truth is that the company representatives will remain shut when you ask them about the real status of their OpenCL API – especially if you quote them a lead developer from a AAA software company with 10x more employees than AMD themselves that goes something like this: “I struggled to even get ATI’s beta drivers installed and working, it was just problem after problem. Maybe once ATI gets their drivers out of beta and actually allow you to install them then I will have some performance numbers. I mean at this point AMD is so far behind in development tools they are not even worth pursuing right now.”
Before you venture into rants, commercial aspect of GPU technology is a serious business. It took Intel better part of the last decade of 20th Century to get into the High Performance Computing business, and that market matured from being reliant on renting time on Supercomputers to having a multi-TFLOPS machine on desktops. Thus, it isn’t surprising to see Adobe going to CUDA first. The plan is probably equal to all plans that we heard so far: go to CUDA in order to completely unlock the GPU potential and only then port to OpenCL, as Apple’s and AMD’s OpenCL toolkits mature, sometime in 2011.
Now, Mercury Playback Engine is just one small part of CS5: for instance, Flash CS5 goes as far as supporting GPU-accelerated physics, while the acceleration of Photoshop CS5 is just out of this world. If you use appropriate hardware, the one Adobe can work on and build a set of features, there is one certain thing: Adobe’s CS5 will amaze you. The product suite is set to arrive in April 2010.
Original Author: Theo Valich
Webmaster’s note: This news article is part of our Archive, if you are looking for up-to date articles we would recommend a visit to our technology news section on the frontpage. Additionally, we take great pride in our Home Office section, as well as our VPN Reviews, so be sure to check them out as well.