GPUs are really fast but using some kind of instructions, while on a FPGA you can practically design what "instruction" is going to run. From the limited experience I had on CUDA but the complexity of your algorithm and how much branches your code have can make your code a lot slower than running it on a CPU, no matter the amount of CUDA cores you have.
It could be incredibly cool that in some near to mid future to being able to run an application that could run some kind of code in the FPGA, like they already does with the GPU, to solve some kind of problems, like audio, image, video processing, and probably machine learning (I don't know too much about current implementations), and with that user-space interface, it could even be earlier than I though.