Each CUDA core can tackle approximately one FLOP per cycle, while a CPU core can tackle approximately 16 FLOPs per cycle. Given that there are usually at least 6 cores on a chip, and that reaching full utilization is difficult on a GPU, I dont' think ~20X is too shabby.
Also more importantly, the efficiency goes up dramatically, which is usually infinitely more important than the raw performance.