NVIDIA made a poor (IMO) strategic decision by abandoning OCL but you still have to give them the credit for creating it! I think they were afraid to abandon their early adopter CUDA customers and decided they didn't have the throughput to support both.
I think eventually they'll reverse their position on OCL. But to a lot of folks doing GPGPU they don't care about OCL and they're using CUDA and loving it. So it's not fair to say "NVIDIA is poor at doing anything GPGPU" IMO.
OpenCL Trademarks belong to Apple Corp. I dont think Nvidia made OpenCL.
They might be good at GPGPU, but only on the GPU's that specialize in it. ie. Their tesla series. The consumer GPU's they make aren't as good.. but they are also the vast majority.
Idk.
All I know is that the GPGPU software I've seen out there runs tons faster on ATI cards than it does on NVIDIA cards.
Yeah, Apple owns the trademarks because they're the ones who brought everyone to the table. Apple loved CUDA but isn't dumb enough to sole-source any of their parts. So they told NVIDIA and ATI that they should all play nice and standardize CUDA. OpenCL was the result. It's only barely different from OpenCL. The biggest differences are primarily in making CUDA fit a programming model similar to the shaders already used in OpenGL. NVIDIA wanted to win a contract with Apple and they had a huge headstart on the competition. AMD's Brook and CAL/IL was mostly a flop, so they would happily jump onboard with a Khronos standard.
If you look just at hashing (and now prime number computation), you're missing a much bigger part of the GPGPU marketplace. Most of the GPGPU customers (in terms of units purchased) are running floating point computations of enormous matrices and using the interpolation hardware. They're used in scientific applications, Oil&Gas, Medical stuff, etc. In those applications, NVIDIA does very well, often better than AMD.