3 ms·
Thanks for the detailed response. I was just about to say: when to use an FPGA over a gpu? There are a few GPU gems books that describe what kind of code runs
by debbiedowner 6y ago
Thanks for the detailed response.
I was just about to say: when to use an FPGA over a gpu? There are a few GPU gems books that describe what kind of code runs best on GPUs, and you can buy 30TFlops for $700 these days.
I know gpu is not so good beyond single precision. Is that the application? Do you recommend a similar FPGA gems book/website?
I see there is: designing with xilinx fpgas, design warriors guide to fpgas
- sgtnoodle 6y agoIt really comes down to how well a GPU's capabilities align with the problem you're trying to solve. A modern GPU is basically thousands of really simple CPUs that all run the exact same program but on different input data. Communication between those CPUs while the program is running is incredibly bad for performance. If your problem is solvable within those limitations, then a GPU is a good choice. An FPGA gives you more flexibility because you can dedicate hardware exactly where you need it. You don't even need to stick with common data widths. If you only need 11 bits, then there's no need to do 32 bit math, for example. An ASIC with custom circuitry will generally be the fastest, lowest power way to solve a problem, with the lowest per-unit cost, but it has absurdly high development and initial tooling cost. An FPGA gives you the benefits of custom circuitry with significantly lower development cost (than an ASIC), but it's less power efficient and the unit cost is relatively high for what you're getting. A GPU gives you good power efficiency, good development cost, and good unit cost if your problem maps well to what GPUs can do. A CPU gives you the lowest development cost, but sets a mediocre baseline for power efficiency and unit cost.