How the hell is OpenCL only NVIDIA if you can program it to run on AMD hardware and I can use it if you do so?
You can run OpenCL perhaps, I can run OpenCL, but the average end-user can't.
You think the average end-user for PhotoShop/Premiere has any idea about GPGPU acceleration or what Cuda really means? Let alone that they would know where to find an SDK and install it?
I doubt it, these are artists, not computer-savvy people (most of the time they use Macs for that reason).
All they have to know is that Adobe recommends nVidia Quadro cards for best performance, so they buy one of those, and probably have it installed for them by the IT department.
Let me explain in terms you may understand (but probably will deny anyway):
AMD advertises with OpenCL support. So people who buy an AMD card, will think that it supports OpenCL. Then they install my application... and hey, it doesn't work!
Who do you think they're going to call for support, me or AMD?
I'd be getting a lot of support calls saying "Hey your software is crap, it doesn't work", and then I'd have to explain that they need to download and install the SDK etc.
Yes, I could put it in the manual, in a readme, or even a popup window on install... but do you think people actually read those? Let me answer that for you: They don't.
So it'd be a big waste of time and money on my behalf. Thank you AMD.
GPGPU is still at infant stage - one can do a few steps while the other can only move on 4.
No, AMD's GPGPU is still at its infant stage. nVidia on the other hand is doing fullblown C++ by now. With nVidia there's barely a difference between CPU and GPU anymore, language-wise. nVidia even offers Visual Studio plugins for debugging and performance analysis.