The perplexing error messages that failed kernels give out (or even a total lack of feedback, if the user isn’t calling the right functions), really trips newbies up. There’s a mass of threads on these boards which basically end with something like, “you’re using too many registers,” or, “you’re accessing memory out of bounds.”
I know how important the learning curve is to the CUDA developers, but I think the lack of good error reporting for crashed kernels is one of the last barriers.
First of all, the error messages need to be improved. Second of all, I think CUDA should use (or allow the use of) C++ exceptions instead of macros and error checking functions. People don’t want to dirty their code and unchecked exceptions send the clearest message to a newbie that something’s wrong. But at the very least, the SDK macros need to be made a part of CUDA and their use explicitly recommended in the Guide!