Adobe video specialist Dennis Radeke shares quite a few details about how Adobe is leveraging graphics processors (GPUs) to greatly accelerate common operations in Adobe video apps. Taking this together with After Effects & Premiere Pro going 64-bit, I think a lot of Adobe video customers will be very happy. Check out his post for more info.
Inevitably this news will raise questions about what’ll happen with Photoshop. I can’t get into a lot of details, but here are a few points offhand:
- We’re working together with other Adobe teams, including the video & Flash teams, on core GPU & multicore acceleration technology. That’s how we’ve started delivering GPU-based features, including Pixel Bender in Photoshop.
- It’s a long and tricky road, as folks who ran into driver incompatibilities, etc. in CS4 can attest.
- To that point, we think technologies like OpenCL are exciting, but they’re young. Dennis notes that some new features are NVIDIA-only right now and points out, “Given a choice between doing it with CUDA or not doing it for a while [while waiting for] OpenCL, we chose the former.”
- Obviously we want Adobe apps to run as well as possible regardless of your configuration. Just as they used to optimize for both PowerPC and Intel/AMD chips, Adobe engineers continue to work closely with multiple manufacturers (Intel, AMD, NVIDIA, and others) to wring the most out of their hardware. Again, this is where standardization will help, but it does take time.
Too bad they chose the easy road.
[I’m not sure what about it is “easy.” –J.]
They should have chosen Open CL or at least Direct Compute.
[So, if you had to choose between them doing nothing in this regard for CS5 and doing what they’re doing, you’d choose nothing? –J.]
I hope they will chose the standard path in Photoshop.
[As I say, everyone wants to make things fast as broadly as possible. What Dennis’s post describes is what was possible right now. I don’t know what else I can say beyond that. –J.]
Drazick, if you look at the link John provided it mentions the following:
“Question: “Will you support OpenCL in the future?”
Answer: Clearly this is an answer for someone higher up to answer, but my hunch is that we’ll certainly look at it in the future as it aligns with our goals of being open and non-propietary.”
So it sounds like they will end up using Open CL, but since it’s a far away enough decision cannot commit to it just yet. I think it’s great to give a group of users a speed boost as soon as they can and then hopefully widen the support rather than no one getting a speed boost at all until later.
And I’m writing this from a computer using an ATI GPU.
John I LOVE YOU!!!
I really, really, like your blog. It’s usually informative, sometimes downright instructional, and almost always a pleasure to read.
[Aw, shucks. –J.]
However…
“levereraging”
Seriously? “leveraging”? You might as well have used “utilizing” — another abomination spawned in the circle of linguistic hell reserved for business communicatÃon.
That word… it burnzzz us!
I may be wrong though — as Immanuel Kant famously postulated: Taste is a matter of discussion, not (logical) dispute, so maybe I’m just completely behind the curve (english is only my second language, but one I frequently encounter in my work).
Just a humorous jab, not a flame.
[Heh–guilty as charged. You can’t swim in a sea of marketroid-middle-mgmt.-buzzword bilge water and escape completely clean. –J.]
Anna, wanna marry me?!?
You say some features in OpenCL are NVIDIA-only — but isn’t CUDA NVIDIA-only?!
I had hoped for Adobe to support the great and open new features of Snow Leopard like OpenCL and Grand Central to speed up the experience of their applications, but once again I doubt I will buy a product again… not within the first year — that’s for sure…
I read what they said.
Yet I can’t receive the assumption that using Open CL means having nothing at the moment.
Go to Beyond 3D forums and see what people are doing now with Open CL.
Yea, it’s much easier at the moment writing code with CUDA than Open CL. Yet it can be done.
Did I understand that right, that Photoshop (as well as as After Effects and Premiere)is also moving to CUDA? That means more GPU acceleration than in PS CS4, right? GREAT!
[We need to be careful in not setting expectations too high. We are of course working to evolve the Photoshop GPU story, but the migration to Cocoa–and then to 64-bit–is a massive effort. It would be wise to bear that in mind when imagining what can be done in one cycle. Also, note that the optimization tasks & challenges in video are often quite different than what we face with Photoshop. –J.]
Going CUDA only is a joke, you guys have to to move to an open standard because as of today professional GPU’s is the last green bastion. ATI has better chips in the current generation and I can bet my wallet that they are not going to have any design wins in the next gen consoles with Intel practically sealed the deal with Sony and AMD with MS and Nintendo.
By supporting only one manufacturer you guys are asking for trouble…
ND – OpenCL isn’t even really finished as I mentioned in the article. It’s either wait a much longer time or get it done with a technology that is available today. Also, NVIDIA owns around 90% market share in the professional space, so it makes sense to go CUDA right now.
Snow Leopard, OpenCL and Grand Central Dispatch: Of those three, only one is ‘open’ outside of Apple. Adobe is committed to open workflows and technology wherever possible. CUDA will work on Mac, we’re compatible with Snow Leopard right now and the next version of Premiere Pro and After Effects will be 64-bit native (snow leopard). Lastly, I can’t help but point out that we’re doing better CPU utilization today with CS4 than other comparable Apple products. We will use all 8 cores on a Mac whereas FCP uses only 2. Nevertheless, we’re committed to improving wherever there’s opportunity and I’m sure the many people involved in our product development are looking at ALL avenues for improvement. Please feel free to comment further on the actual entry on my blog should you so choose and thanks for the input.
Let’s say you’re right about the short term. CUDA is the only available option.
What we’re afraid is that means you’ll be buried with it.
It might not be logical for you to develop something twice, once for CUDA and then Open CL.
I hope Adobe won’t do that mistake.
While I understand that OpenCL is not ready for primetime yet. My concern is that by starting to support CUDA only, it will be more diffcult for Adobe to switch to switch to OpenCL later. How portable is the CUDA code? What incentive will Adobe have 2 years from now to add OpenCL support? These questions really bother me because I know that in the corporate world it’s all about money and ROI and I don’t see Adobe going back to OpenCL unless it’s going to be a trivial thing to port the existing CUDA code to OpenCL.
Max – Without getting into too much detail, I believe that we are very serious about moving to CUDA at some point. If OpenCL had been ready at the time, the choice would have been clear to be more ‘open’ – which is always are strategy.
My understanding is that OpenCL is a consortium of hardware and software vendors including nvidia. I understand that a lot of CUDA code has made it into OpenCL, so that bodes well.
I hope this answers your questions – thanks for your comments.
Duh – replace “CUDA” with OpenCL…
CUDA is a dead end. OpenCL is what Adobe should aim for.