Please or Register to create posts and topics.

Why use an FPGA instead of a CPU or GPU?

I saw many very good theoretical answers, and wont duplicate them, but I think it will be useful to add several real life examples showing why people used FPGA instead of CPU/GPU:

  • In-flight entertainment personal player
    • About ten years ago a vendor selected low-power x86 chip and simple GPU as a platform of the player device. But player was not able to play H.264 movies, because GPUs at this time didnt have hardware video decoder, and software decoder was too slow on low-power x86.
    • More powerful x86 chip was not feasible because of strict power limitation for player device.
    • Cheap FPGA with PCI core and part of the H.264 decoder (CABAC) allowed to play H.264 movies with low power consumption.
  • Professional HD Video Camera
    • Also, some 10 years ago, a vendor designed first in the market HD video camera for corporate use. It required HD H.264 video encoder and decoder. Vendor compared CPU vs FPGA for that purpose. Volume ~1000 cameras in the first year, then up to 10–25K/year.
    • CPU was able to encode OR decode HD stream in real-time, so they had to put 2 CPUs in the camera to be able to do simultaneous encode and decode. CPU cost was $80. So total CPUs cost was $160, plus they had to use FPGA for sensor raw data processing at $150, totaling $310.
    • It required one FPGA for H,264 encoder core, and half of FPGA for decoder. Another half could be used for raw data processing. Total $150* 2 = $300. Almost the same cost, right? But, in 10k+ volumes FPGA allowed serious cost reduction (Hard copy), going down to $30, totaling $30*2 = $60. CPU vendor could not provide 10x volume discount, so the FPGA path was selected.