Introduction to OpenCL
realworldtech.com
realworldtech.com
Use CUDA directly. Get access to new features as the chips ship and a much nicer interface. NVIDIA is so far ahead in terms of GPGPU it's worth the vendor lock-in.
CUDA C compiles to PTX, an assembly-ish intermediate language. You could target it with much nicer HLLs to hide a bunch of clunky stuff like cudaMemcpy. Unfortunately it seems to be such a moving target right now that all the non-C interfaces I’ve seen are either very incomplete or use the C internally.
I am dubious. But I'll admit that this isn't a field I'm experienced with.
It looks like AMD GPUs are in one of the top500 clusters, compared to 7 with nvidia GPUs, so that lends some strength to your statement. But I'd rather write for an open architecture and move my code to whatever happens to be the fastest running it then write for a particular vendor and hope they keep up.
Betamax was (slightly) superior to VHS, and it didn't work out so well.
I guess I don't really understand how vendor lock-in would ever be acceptable in a market that exploded due entirely to the commoditization of the personal computer. Okay, CUDA is more pleasant to code in now now, but what happens if AMD's GPUs start trouncing nvidia's? Or what if Intel figures out how to make Larrabee competitive? What if Oracle buys nvidia and starts charging extra for drivers that support CUDA?
If you're crunching numbers for a specific task, this could be the best option. However, I think increased use of the GPU is exciting because it can enhance the computing power of a broad range of consumer-orientated applications.
If you're producing an application that will be used by a broad range of consumers, perhaps a vendor lock-in would prove to be short-sighted?
Alright. Damn. That isn't actually that much better. Does anyone know a language that has an elegant yet efficient parallel implementation of the FFT?