I was an FPGA engineer before and I think high performance computing based FPGA will lead to a bright future. However through my recently projects I found GPU will be more appropriate when there is a acceleration need.
In embedded system, FPGA co-processing plan: Intel E6x5C
and GPU co-processing plan: AMD APU (with opencl support)
and in desktop system, FPGA co-processing plan: Full custom design, mostly will be based on PCIe fabric
and GPU co-processing plan: nVidia CUDA (with opencv basically support)
If I choose FPGA co-processing, the algorithm will be specifically optimized and R&D time will be very noticeable. If I choose GPU plan, algorithm migration will cost little time(even the original one is Matlab code), and the acceleration performance will also be quite well.
As a conclusion, the FPGA acceleration only suits some certain and fixed application. However in the real world , many projects and many algorithms are very uncertain and arbitrary. With same power consumption, GPU plan may lead better results. For a concrete project, I will consider GPU or DSP, and FPGA at last.
Do everybody agree?