FPGA vs GPU Computing

In the 1990s it became clear that the decades long increases in microprocessor performance was reaching some limits. Accelerators were an active area of research. These were architectures that broke the long standing so-called von Neumann model. Probably because of my hardware background, I gravitated toward FPGAs. My own Ph.D. explored ways to use FPGAs to do general purpose computation.

Similar work was going on at Stanford, most prominently by Ian Buck. If it was even a rivalry it was a friendly one. I recall exchanging email with Ian, but don’t think we ever met in person. The FPGA and GPU conferences were distinct at the time, and probably mostly still are.

Ian went off to Nvidia and I went off to Xilinx, both of us pursuing general purpose computing on our respective architectures. To be fair, GPUs had some short term advantages, mostly in programmability, but FPGAs had long term advantages in latency, power and perhaps peak performance.

After almost a decade of FPGA compute, I went over to the GPU camp and built very large hybrid GPU clusters for the financial services sector. These were some of the earliest and biggest GPU installations. I kept peeking at FPGAs and even did a small in-house comparison to Nvidia GPUs but GPUs were already established, if not entrenched, in the data center. FPGAs weren’t too bad, but no particular advantage that would warrant a shift away from GPUs.

Nvidia had invested in compute in both software and modifications to their architecture. Xilinx (and other FPGA makers) made a few attempts to support compute, and for things like DSP it is still a good solution. But 20 years on, Nvidia has ridden compute acceleration to a trillion dollar market cap. Xilinx and Altera have both been acquired by traditional CPU companies (AMD and Intel, respectively) and still have respectable multi-billion dollar businesses in their traditional markets. One can’t help but admire Nvidia management for doggedly pursuing compute and their current success.

Leave a comment