01-24-2010 12:53 PM
In my school, there are a lot of master and phD research works that uses FPGA, but when these people is doing their final exam, always the thesis commite ask why decide implement the solution in FPGA instead an GPU, and almost all people does not know what to response. GPUs offers great performance, in specific CUDA since it has a lot of processors working in parallel to develop certain work, and it is relative easy programmable with C language.
So I want to know your opinion about this two ways of "hardware aceleration process", when a GPU can win over FPGA and when FPGA win over a GPU??
I know that a GPU in more use for graphical task, in special for rendering, but also exists the GPGPU (general purpose GPUs) , so with this aproximation a GPU can be used for "any" application
Thanks for your opinion
01-24-2010 01:48 PM
01-24-2010 07:11 PM
GPUs have a fixed computational/programming model. FPGAs do not, and their logic can be customized exactly for an application's needs. Another difference is that FPGAs require (usually) some HW design experience, while programming GPUs does not.
01-24-2010 10:28 PM
11-15-2010 12:51 PM
I know this is an old topic, but I have a follow-up question. I've seen a few people mention that FPGA hardware is much more expensive than GPU's. I'm not sure what hardware or figures you all are using, and am trying to justify this claim. Can you all maybe give an example of pricing for a heavy DSP type application?
Particularly, I estimate the cost of a Tesla workstation at $8k (give or take several thousand) ... That's not exactly cheap compared to the FPGA boards I've seen. What am I missing?
I say this all as a new-comer to the field. I am trying to gather initial information before choosing a route between GPU and FPGA based computation.
11-15-2010 03:34 PM
06-10-2013 11:25 PM
A GPU is an ASIC, so it comes with all its advantages and disadvantages. If you're only looking at DSP performance (the DSP slices on the FPGAs basically provide a multiply-accumulate operation) an FPGA is not going to beat even a modest GPU. And though the GPU isn't as versatile as an FPGA, it offers quite a lot of things that FPGAs typically don't like to do, such as floating-point operations.
Another thing about GPUs is that they're invariably accompagnied by a big, fast and wide memory bank. It'll be a tough job to match that. And it has a pretty nice datapath to the main system as well, as they're typically on the fastest bus available (PCI-X16 typically). Aparth from the CPU cache, the GPU memory is usually the fastest in a PC system.
So if your task is to do heavy number-crunching that involves large amounts of data, the GPU would appear to be a much better choice.
Having written that, there are a number of reasons why your particular project would be better of with an FPGA.
For one thing, using a GPU will probably force you to use a PC platform. While they offer unmatched price versus performance, the PC is not known for its power efficiency. If your solution is to be powered by an ethernet line or small battery, or if your device needs is to be strapped to someone's chest while he's running, that will make such a platform unrealistic at best.
An FPGA will be able to give very tight timing performance. Something a PC is not going to give you easily.
06-11-2013 01:21 AM
It's a bit like "real time" versus "fast". Typically a GPU will give you "fast", but you cannot guarantee deadlines. An FPGA will typically give you "real time", because it doesn't have to share resources with, for example, the desktop. But it won't be able to give the same average throughput.
I recently worked on porting a demonstration application, that was designed to run on a PC with a big FPGA board, to a Zynq system. To facilitate development, I first transformed the code to run completely on the ARM side of the CPU, as to have something to compare performance with. Just a few optimizations in the code (e.g. using both cores and handcrafting some NEON code) made it run at 4x realtime on the ARM alone (the customer wanted <10x realtime) and at about 1/2 realtime on the PC alone (with much less specific optimizations, so don't think that the ARM is only 8x slower than an i7). Which proved that the whole FPGA board wasn't needed at all, the whole thing could have been run on the PC alone, or even on an embedded CPU system (with a quadcore ARM at 1GHz, the system would be running realtime) if more attention had been given to the implementation early on in the project.
04-09-2014 07:19 PM
To conclude your porting, if I'm correct, it means that your customer's computation tasks are suitable for GPU, right ?
06-10-2015 12:03 PM
My answer on GPU vs FPGA on 'energy consumption' metric:
Based on my survey paper, published in ACM Computing Surveys 2015, I found that most papers reviewed report that FPGAs are more energy efficient compared to GPUs, which, in turn, are more energy efficient than CPUs. The paper is here:
Since processors has fixed power and cooling budgets, better energy efficiency of FPGAs implies than within the same power budget, FPGA can run more hardware to run more computation and thus, provide better performance.