...though I am concerned that abstracting this stuff too much makes it less obvious how to optimize for the GPU. This may be a language for people that already have a solid grasp on GPU programming.
Um. OpenCL/Cuda look absolutely nothing like that.
Absolutely right. You can also include an external C file from C++ [1]; that makes it so much prettier.
[1] http://developer.amd.com/tools-and-sdks/heterogeneous-comput...
Happily, writing this answer I discovered that OS X 10.7+ ships with OpenCL already! Can't believe I missed that last time.
For anyone else wanting to try it, the first example is pretty straight forward:
https://developer.apple.com/library/mac/#documentation/Perfo...
(You'll also want the code examples at https://developer.apple.com/library/mac/#documentation/Perfo... )
They both run on the same hardware, but I don't have enough (or really any) experience with OpenCL to say if it feels more or less powerful than GLSL.
Edit: It turns out that I have no OpenCL hardware support (mid 2011 MBA), so I guess the hardware isn't necessarily completely similar (i.e. it can support GLSL and not OpenCL)
That, coupled with the wretched GPU options available on the Mac Pro, make the current stack not really cost effective. (I think a 5770 is still $250.)
However, it is better than CPU-only.
I've found slaving a cheap Linux box with expensive GPUs to be a much more gratifying experience.