Adobe: The GPU is not a universal app accelerator

Posted on February 19, 2009 - 09:02 by Wolfgang Gruener

Chicago (IL) - So we are all excited about the fact that we can buy 1 TFlop graphics cards and run certain software much faster than before. We knew before that not many applications can take advantage of GPU acceleration and that its benefit is very limited. Photoshop CS4 was one of the first products to take advantage of this accelerated compute feature and some users may have been disappointed by the extent to which the GPU is used in Adobe’s software. Of course, there is a reason, and this reason may shed some light on what we can expect from future GPGPU accelerated software -- including Apple’s Snow Leopard OS: The GPU cannot be a universal app accelerator, at least not yet. And even more, we learned that Intel’s Larrabee graphics card may have a long way to go.




Adobe introduces acceleration in CS4

In our coverage of Photoshop CS4 released last year, we were particularly excited about the application. We still consider it a milestone release for the entire software industry as it is the first major complex application that introduced general purpose (GP) GPU acceleration to its users.



However, depending on your view, this new feature may be exciting or disappointing. The bad news was that only canvas rotation and zooming supported GPU acceleration. Adobe said it would make additional features available, such as its "Pixel Bender" component (which did not make it into the final version). However, the good news was that we saw GPGPU acceleration in a commercial application, giving it more horsepower to deal with huge images. Both AMD/ATI and Nvidia graphic cards provide Adobe with acceleration through OpenGL -- as long as a graphics card has at least 128 MB of memory (see this list of official Adobe-approved supported video cards).



After almost half a year since the CS4 beta was given to journalists, and with the acceleration still being very limited for end users, I believed it was time to talk to Adobe’s Photoshop product manager John Nack, along with software engineering lead Russell Williams, about the experiences they had with GPGPU acceleration and about the challenges implementing what GPUs are really good at -- parallel number crunching.


GPU used in rendering, bandwidth constrained elsewhere



Not surprisingly, they both consider the GPGPU support in CS4 to be the mere "tip of the iceberg," with more to come in future releases. But they also highlighted the fact that supporting GPGPU features is challenging and may not come as the universal solution many would have thought, and this for a very simple reason that may dampen some of the hopes of potential GPGPU uses in the foreseeable future.



Williams explained that Adobe's made the decision that Photoshop will have to play to the traditional strength of graphics cards in order to achieve the highest possible gain: Visualization. The thought behind this idea is the limited bandwidth of the graphics card hardware interface. I was told in order to take advantage of the GPU, data has to be shipped to a graphics card the rate of about 3 GB/s. In general computations, the data has to be shipped back at a rate of about 600 MB/s. Imagine the massive amounts of data that large images can create and it quickly becomes apparent that there can be substantial delays -- especially if you cannot compute data while other data is being shipped.


Williams compared this scenario to a company that would like to print local papers in San Jose, but decides to go with a printer in New York. "You will have to fly the data to New York, and it's returned on a bi-plane."



Adobe’s solution is not to ship the data back on a bi-plane, but rather ship data to the graphics card and from there directly to the display. This means GPGPU acceleration will be apparent in image rendering (zooming, rotating) and in 3D rendering. An idea for future use is the Pixel Bender application which creates and abstraction layer between the hardware and software interfaces (including operating systems, hardware drivers and even DirectX and OpenGL). This route is more of an advanced programming approach which isolates the actual application from drivers and shows what potential GPGPUs will have (at least until we see much faster hardware interfaces).


OS X Snow Leopard



Of course this highlights limitations in future GPGPU-accelerated applications, such as Apple's well-touted Mac OS X Snow Leopard. If Apple can’t change the hardware interface, their GPGPU acceleration will also be limited. But most likely, Apple will play to the card's strength and come up with great visualization solutions. We shouldn't expect OS X to run 100 times faster, but it will likely include many more visual effects. The new OS X will support OpenCL as a GPGPU acceleration layer, which Adobe’s Williams described as a "good approach" to "simplify the life of the developer."


Larrabee



Williams also commented on Intel’s future x86-based graphics card "Larrabee". It is still very early to talk about this product, which may be released sometime in 2010, but he noted there is very little information about Larrabee at this time and Adobe has no intentions to include special support for Larrabee in Photoshop. "We are taking a wait-and-see-approach," he told me. "Larrabee is a wild card in the game. It is not structured like a GPU and there is no clear indication of how to take advantage of the x86 hardware." He also noted that it's unclear at this time which tools will be available to develop for Larrabee and that Adobe does not know what "costs" will be involved to take advantage of the GPU.



If Adobe’s approach to Larrabee is any indication, Intel may be in for the long haul with Larrabee -- having to invest quite some time and effort to convince major software makers of its cGPU graphics card advantages.




Advertisement