While the kernel is running, the GPU is 100% dedicated to running the kernel only, not updating the screen. This is why you will see sluggishness. Actually, you could squeeze out some more performance at the cost of more sluggishness. This is perfectly normal. If you have 2 graphics cards, you could use the slow one for your display and the fast one just for CUDA.
Is there some way to tie the GPU portion of generation to a screensaver-like start/stop?