I should add that I don't like adding cuda-only code traps like that since I feel that the more we pile on, the less chance there is that we will ever support OpenCL.

Also, if there is a need for new abstractions for things like making sure that atomicAdd is supported on the device (which is what this is testing for even if it's not obvious), I'm open to adding those to libgpuarray, but I would have to know about it.