Live data from Hacker News

Why Use an FPGA Instead of a CPU or GPU?

blog.esciencecenter.nl

81–90 of 130 posts

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

#81
post #72

What are some cool jobs for FPGA experts besides Intel and Military? It seems like there's not much availability.

I recently spoke to someone at Broadcom who was moving networking processes from software to hardware using them, try looking into similar companies.

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

#82

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).

Some FPGAs have built in flash that they will automatically load a bitstream from upon boot. If they don't, they typically can load the bitstream from an external flash chip upon powering up, or even via a microcontroller that's interfacing with the flash chip.

Thanks, didn't know that. Is the boot process slow?

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

#83
post #20

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).

Many FPGAs can load their bitstream from Flash.

Cool, didn't know that. Is the boot time fairly slow compared to booting a normal PC?

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

#84

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).

I have at least 4 FPGAs that will never be made into asics sitting in my office right now and they're not even for highly technical stuff. They're retro video game things (2 everdrives, a video upscaling device called the OSSC, and an HDMI adapter that plugs into the digital out port of the gamecube originally made for component output). I bought all these things off the shelf. There are definitely some markets that…

A fellow retro gamer. I love my OSSC

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

#85
> The HPC community is already used to GPUs — getting people to switch from GPUs to FPGAs requires larger benefits.

It's worth pointing out that some scientists haven't even made the leap to CPGPU computing yet and are still relying upon OpenMP / multithreading on general purpose CPUs, even when a GPU would be clearly superior. Anecdotally, I remember hearing that climate science simulations are particularly bad about taking advantage of new architectures for speedups, an assertion which possibly is supported by the fact that climateprediction.net simulations took several days using all 8 cores on my laptop to finish.

Neuroimaging is also pretty bad, since other than Broccoli [0], most toolkits for preparing analyses don't leverage GPUs, even though I'd wager 80% of the steps involved image manipulations / linear algebra.

[0] https://github.com/wanderine/BROCCOLI

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

#86

Does anyone have experience of Reconfigure.io [1] and their toolchain that transpiles Go for execution on FPGAs [2]? I am curious how it feels from the developer perspective, how it works in practice, and what types of applications it is a good fit for. [1] https://reconfigure.io [2] http://docs.reconfigure.io/overview.html

Unless you have optimized your code as much as possible to run on x86 or GPU and still find that you need a prohibitively expensive amount of processing power to accomplish the task, then and only then is an FPGA worth it.

It is literally a DIY CPU architecture. So, unless you know exactly what it is about your current CPU's architecture that is holding you back, you won't be able to benefit from an FPGA-based design.

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

#87

One clarification on the comment about latency. FPGAs are typically clocked much slower than a modern CPU. Typically, they run somewhere in the low 100's of MHz, whereas an Intel CPU clocks in at around 3GHz last time I went to the Apple Store. With a typical x86 multiply instruction having a latency of about, say, 3 cycles, putting that workload on an FPGA would result in a ~10x slow-down! The real benefit of an FPG…

Another thing is that you can pipeline, for example, multiplies. So in a CPU multiply you give the CPU inputs, wait a couple cycles, and then get the result. In an FPGA you can build a pipelined multiply. It's built such that you can feed it input every cycle and get an output every cycle. The only caveat is that the outputs are delayed relative to the inputs. i.e. you may give it (2, 3) to multiply on one cycle, but…

Thanks.

Just to clarify whilst I have your attention: isn't it a common practice to pipeline frame buffers too? For instance, Android has three frame buffers. IIRC, one is with the user space handing off display lists, one used for composition, and one is used by driver for rasterization?

In that case, how good, you reckon, would the perf be compared to FGPA?

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

#88

I've always thought FPGAs would be perfect to have hardware backed video decoding/encoding that could adapt to new codecs (like vp9) while also being updatable for new performance improving discoveries. It also seemed like it would go well with a generic radio subsystem, so you could compile hardware support for new wireless standards that come out after your hardware did (essentially an fpga sdr). It seems like ther…

Experience seems to show that standardizing on a codec or instruction type is the most likely path. Apple iDevices have had hardware transcoding for video for a couple releases now.

You really can't just have an FPGA that you recompile to a different architecture within a split second. They typically require compiling, downloading, and testing the the architecture you're deploying.

Until someone comes up with a much faster to deploy FPGA, you'll likely not see enough efficiency gains in having a codec-specific processor given the time it takes to reconfigure the FPGA for each codec.

Post reply on HN