What are the advantages of using FPGAs over GPGPUs? It seems like GPGPUs have the best of CPUs and GPUs combined.
There are specific applications for which GPUs are useful. For example, they are useful when we want to perform same operation(use same instructions) but for many different data elements in parallel. For example, add 1K elements in parallel. Such workloads are said to have Data Parallelism.
This is not the case with FPGAs. They are highly customisable and can be made to do anything you want and not just highly data parallel operations. Hence, FPGAs offers much more freedom for designers than GPUs.