UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Scholar pumaju1808
Scholar
32,372 Views
Registered: ‎08-14-2007

GPUs vs FPGAs

hi all,

 

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

Regards

 

0 Kudos
10 Replies
Xilinx Employee
Xilinx Employee
32,367 Views
Registered: ‎01-18-2008

Re: GPUs vs FPGAs

See fig 5 here: http://www.cs.virginia.edu/~skadron/Papers/che_sasp08.pdf

 

FPGA offers you the ultimate customization, at a certain cost. 

0 Kudos
Adventurer
Adventurer
32,354 Views
Registered: ‎01-04-2008

Re: GPUs vs FPGAs

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.

 

0 Kudos
Advisor evgenis1
Advisor
32,346 Views
Registered: ‎12-03-2007

Re: 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.
 
 
 


Tags (1)
0 Kudos
Visitor mjs454
Visitor
30,985 Views
Registered: ‎11-15-2010

Re: GPUs vs FPGAs

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.

 

Thanks,

Mike

0 Kudos
Advisor evgenis1
Advisor
30,969 Views
Registered: ‎12-03-2007

Re: GPUs vs FPGAs

Hi,

 

You can find a ballpark cost of FPGA on Findchips.com . For example, Virtex 6 XC6VSX475T with the most DSP slices is quoted around $15K. 

Now you need to compare Tesla resources with 2K DSP slices, 600K flops, and 4.5MByte RAM of the XC6VSX475Tchip.  

 

 

Thanks,

Evgeni

Tags (1)
0 Kudos
Observer jcmoctezuma
Observer
22,906 Views
Registered: ‎08-14-2007

Re: GPUs vs FPGAs

Any updates opinions so far, for this topic?

 

Cheers

0 Kudos
Scholar milosoftware
Scholar
22,823 Views
Registered: ‎10-26-2012

Re: GPUs vs FPGAs

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.

0 Kudos
Scholar milosoftware
Scholar
22,821 Views
Registered: ‎10-26-2012

Re: GPUs vs FPGAs

(continued...)

 

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.

 

0 Kudos
Participant tennirva
Participant
20,232 Views
Registered: ‎07-18-2011

Re: GPUs vs FPGAs

Hi milosoftware,

       To conclude your porting, if I'm correct, it means that your customer's computation tasks are suitable for GPU, right ?

 

 

Thank you,

Tennirva

0 Kudos
Highlighted
Newbie sparsh
Newbie
2,003 Views
Registered: ‎06-10-2015

Re: GPUs vs FPGAs

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: 

A Survey of Methods For Analyzing and Improving GPU Energy Efficiency

 

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. 

0 Kudos