Electronic – Can FPGA out perform a multi-core PC

algorithmcorefpgalaptopquartus

I don't understand how FPGA can be used to accelerate an algorithm. Currently I'm running a time consuming real time algorithm on a quadcore laptop so that four computations can be done in parallel.

I have been recently alerted that FPGA may yield even better performance. I don't understand how that works. Can someone explain how FPGA accelerates an algorithm and if I should switch to a Xilinx or Altera FPGA solution or keep performing the computations on my quadcore laptop.

Additional Details: The algorithm runs 20 artificial neural networks using inputs fed in through the wavelet packet transform

Thank you all for the great answers.

Best Answer

A colleague of mine benchmarked this and came to the conclusion that FPGAs would outperform a PC once you had more than about 100 independent, integer tasks that would fit in the FPGA. For floating point tasks GPGPU beat FPGA throughout. For narrow multithreading or SIMD operation then CPUs are extremely optimised and run at a higher clock speed than FPGAs typically achieve.

The other caveats: tasks must be independent. If there are data dependencies between tasks then that limits the critical path of computation. FPGAs are good for boolean evaluation and integer maths, as well as hardware low-latency interfaces, but not for memory-dependent workloads or floating point.

If you have to keep the workload in DRAM then that will be the bottleneck rather than the processor.