Live data from Hacker News

Why Use an FPGA Instead of a CPU or GPU?

blog.esciencecenter.nl

101–110 of 130 posts

Re: Why Use an FPGA Instead of a CPU or GPU?

#101
post #69

Earlier quoted context omitted.

Throughput and latency are opposite ends of the same tradeoff. FPGAs enable cycle perfect timing control, while for bare-metal CPU programming.. even if you just have an infinite loop running bare-metal on one CPU, looking at the assembly can't tell you anything about the timing. Modern CPUs have multiple layers of caches with penalties for a miss coming in at hundreds or thousands of cycles. They do parallel and spe…

I feel like people are taking the hybrid approach of having a dedicated microcontroller on the same die as their CPU, like the PRU on TI's ARM chips: http://processors.wiki.ti.com/index.php/PRU-ICSS This by no means replaces an FPGA, but if you just want your pins to flip and code to run at a predictable interval, this gets you that. (As for reading pins, they have another peripheral on the die that will just timesta…

Yeah, the TI PRUs are what you get approaching this topic from a processor manufacturer standpoint, the XILINX Zynq is how a FPGA manufacturers would do it.

Re: Why Use an FPGA Instead of a CPU or GPU?

#102

Aren't FPGA's used mostly to test/design a circuit that you would then go on to actually fabricate/build? I could be wrong but I thought FPGA's were stateless (meaning if they powered off/reboot you loose everything and have to set it up from scratch again).

That is incorrect, or at least inaccurate, on both counts. FPGAs are often used to test/design not a "circuit" but an ASIC (application-specific-integrated-circuit) that you will then go on to actually build. Or, if your application doesn't have volume to suppprt the ASIC engineering costs but can support the FPGA unit cost, you just leave it as an FPGA. There are millions of devices (industrial machines, research, t…

> FPGAs are often used to test/design not a "circuit" but an ASIC (application-specific-integrated-circuit)

To be pedantic, an ASIC (and any IC really) is a circuit, as denoted by the "C" standing for "circuit".

Re: Why Use an FPGA Instead of a CPU or GPU?

#103

Aren't FPGA's used mostly to test/design a circuit that you would then go on to actually fabricate/build? I could be wrong but I thought FPGA's were stateless (meaning if they powered off/reboot you loose everything and have to set it up from scratch again).

The Bing team at Microsoft use FPGAs in production. I was chatting with one of their developers recently who is focussed on that space for them and he mentioned they find they get similar performance to GPUs, but with significantly less power consumption, while affording them the same levels of flexibility for their particular use case.

Re: Why Use an FPGA Instead of a CPU or GPU?

#105

Aren't FPGA's used mostly to test/design a circuit that you would then go on to actually fabricate/build? I could be wrong but I thought FPGA's were stateless (meaning if they powered off/reboot you loose everything and have to set it up from scratch again).

They are used in production all over the place, along with their smaller cousin, the CPLD. If you see a part on a PCB by Xilinx, Altera, Lattice, or some MicroSemi parts, odds are that it's an FPGA. Many FPGAs lose their configuration on power-off, so you configure the bitstream using a CPU for example. As others have said, there are also flash-based ones.

I personally know of many embedded systems using FPGAs (spacecraft and medical applications), signal processing such as radar, many PCIe cards, etc.

Re: Why Use an FPGA Instead of a CPU or GPU?

#106
post #38

One interesting use case for FPGAs is where hardware qualification is very expensive, for instance for use in space. If a given FPGA is already space qualified, you just need to load new code onto it and you can skip the expensive qualification step for your new application. You can also consolidate functionality of multiple chips into that one qualified FPGA.

The expense for space is producing RAD Hard parts. (The designs are done on the same FPGA then a few RAD Hard chips are made.)

https://en.wikipedia.org/wiki/Radiation_hardening

Re: Why Use an FPGA Instead of a CPU or GPU?

#107
post #3

Is there high performance FPGA that does not depend on proprietary bloated windows-only toolchain?

Actually the EDA industry for the longest time only hard working versions of their tools for "esoteric" cpu architectures like the Sparc and Solaris :). So yes by now they do support linux very well, some of the cadence and synopsis tools might not even work on windows (you need them for simulation, when Modelsim does not cut it). In any case EDA has been a Unix / Linux domain because it is so old and used to require really expensive unix workstations.

Re: Why Use an FPGA Instead of a CPU or GPU?

#109
post #27

"Intel does offer an emulator, so testing for correctness does not require this long step, but determining and optimizing performance does require these overnight compile phases." After some experience with FPGAs, the emulation step is not enough to test for correctness. Most of the problems happen while synchronizing signals with inputs/outputs and with other weird timing problems, glitches and unintuitive behavior…

Funny how some people believe that brain simulations are relatively nearby, but we can't even simulate an FPGa well enough to trust the model.

All sorts of simulators are nearby at once if you consider quantum computers to be nearby, it's not linear development. I agree however, since I don't consider a quantum computer to be nearby.

Re: Why Use an FPGA Instead of a CPU or GPU?

#110
post #99

I would love to see projects like MAME and MESS targeting FPGA hardware for near-perfect hardware emulation of classic hardware.

The Anologue Super Nt project uses an FPGA to run SNES cartridges unemulated.

https://www.analogue.co/pages/super-nt/

Post reply on HN