But in more specific embedded cases -- meaning the vast majority of FPGA applications -- they are nothing alike. If I need to run a multichannel digital downconverter on a power budget of 1 watt, no GPU available in the foreseeable future is going to handle that role as well as an FPGA will.
Perhaps someday a hypothetical I/O-optimized GPU will be able to do the jobs that are currently done on FPGAs and ASICs, but definitely not now.
Let's recall a previous acquisition, one that I totally didn't understand. An analyst had a really good quip about it:
JPMorgan analyst Christopher Danely upgraded Intel to overweight following the company's earnings, although he still struggles to reconcile Intel's recent acquisition spree.
"Intel might as well have bought Whole Foods," he said of the McAfee deal.[1]
Compared to McAfee, acquiring Altera was brilliant.
As a public company Intel is always facing scrutiny from Wall Street. They need to constantly increase both revenue and earnings. What better way than via a strategic acquisition? Instant growth.
And Altera was a logical target. Altera sells high-margin silicon. Intel sells high-margin silicon. Intel was even fabbing some of Altera's parts, so they were quite familiar with the company. And maybe some smart people could eventually think of some synergy. E.g. once upon a time Intel made the IXP1200, a "network processor". What if, instead of designing custom silicon for something like that, perhaps a CPU + FPGA on a single die would be sufficient?
Makes much more sense than Intel acquiring McAfee.
[1] http://www.reuters.com/article/us-dealtalk-intel-idUSTRE73K7...
If your work can be broken down into a thousand peices that can be computed independently, than using a GPU can get you ludicrous speedups.
Here is a good overview:
Neural nets are matrix multiplications and addition. They are generally memory constrained on GPUs and Main <> GPU memory is also a bottleneck.
I don't see how an FPGA will really help there.
To make a programmable gate, however, requires more power-inefficient transistor designs, usually using more transistors than an equivalent gate on a general purpose CPU (e.g. a programmable gate set to be an OR gate will be less efficient than an OR-only gate).
FPGAs are therefore more power-hungry per gate, but since you don't need the overhead of transistors that can process arbitrary input to arbitrary output, you can make them very efficient for particular tasks.