CPU vs CUDA performance differ in render and rendered display
If you are rendering with a CPU smaller tile values like 16x16 ( keep them square ) will be fastest. With a GPU larger ones like 256x256 work better. This is due to the way they make calculations. So just ticking the box and set it to GPU without changing this value will make it slower than it can be. Since viewport render is the whole screen the GPU will be faster because the "tile" is bigger