Thats not entirly correct, you can use an onboard card (I think it must support CUDA) but is chip and will be responsible for the screen and the “other” GPU will run the kernels.
The second point, you cannot be sure that your program is 100 % correct. So there is always a chance that your application (kernel) can crash and when you are running the graphics driver on your CUDA card your PC can crash completely. That can happen during development (good) or when it's already running on the client's PC (very bad).
Right, much like any other software… I caused many deadlocks to the system with “simple non GPU” multi-threaded code.
You have to have a good QA department and you should run your code through tools such as valgrind, Ocelot, a simple test like detailed
below from Cygnus ( very nice, btw :) )
Right again for every software in the world. Blue screens is something that NVIDIA didnt invent it was some one else.
Bottom line - the tools, debuggers, profilers and validators for GPUs will improve during time, but it doesnt say you cant provide a stable
environment with the current hardware and tools
my 1 cent, anyway :)