PyCUDA lets you define new kernels by plopping CUDA source as a triple-quoted string in the middle of your Python code. It's not the most elegant thing in the world but you quickly get used to it. It seems on the surface that Continuum's CUDA is essentially the same thing sans-quotations. The semantic level of the "Python" code you're compiling doesn't look significantly more abstract than what you would find in a .cu file. But, it's not fair to judge from a few blog posts, which is why I'm wondering what peoples' actual experiences have been.