Bryan O’Sullivan has a detailed look into the new SDK nVidia has announced that’s aimed at making programing the GPU in their graphics cards more accessible.
How did they do? Bryan doesn’t think they’ve made it there—yet—but he does agree it’s a good first step:
This technology is a long way from anything like true accessibility, even to those already versed with parallel programming using environments like MPI or OpenMP. Still, it’s a great first step.
Specifically, getting work together for the GPU to do is very complex, and involves kernels of code executed in collections of threads that are themselves organized into blocks. Memory is complex to manage, and the compiler doesn’t appear to be mature enough to help much yet (bank conflicts have to be managed manually, as does some of the transfer of data between levels of the memory hierarchy). And the extensions they’ve added to improve usability are fairly minimal in his words.
I found the piece interesting. (Hat tip to Michael Suess for the pointer.)