GPUs vs FPGAs

The answer depends on what exactly you're trying to accelerate.

GPU is really a "software acceleration" that can accelerate certain class of compute-intensive applications. The only interface to the GPU (nVidia or AMD) is PCI Express. 

FPGA, on the other hand, can be used for a broader range of accelerations. It has customizable IOs, so it can interface with any chip (with compatible signal levels, speed, number of IOs).
Examples: TCP/IP checksum offload, ecryption/decryption, audio codec, applications that requre very low and predictable latency.

 

Both technologies, GPU and FPGA, are built for stream processing. Depending on the problem you're facing one or the other may solve it better or worse. Development cycles are usually shorter for GPUs because of their well-known programming model. FPGAs perform better in real-time environments when latencies need to be low. The most significant aspect is that a compiled FPGA design results in real hardware.

But it's not only technical factors constraining your design decision. It requires developers with very specific skills and experience. And those are hard to get... 

 

你可能感兴趣的:(FPGA)