The closest I've seen in popular chips is a few gates worth of programmable logic. Are there any hidden gems I've missed out on?
[1] https://www.nextplatform.com/2018/05/24/a-peek-inside-that-i...
The closest I've seen in popular chips is a few gates worth of programmable logic. Are there any hidden gems I've missed out on?
[1] https://www.nextplatform.com/2018/05/24/a-peek-inside-that-i...
There are very very very few compute tasks where an FPGA solves a problem with better performance per watt than both a CPU and a GPU.
I would bet that emulating a RISC-V program on x64 is far more power efficient than running a RISC-V core on an FPGA for example.
Or really basically anywhere that has you interacting with the real world directly connected to your compute, and not just compute off in a datacenter.
Which, at least in mass-market applications, mostly happens on phones and other battery-powered devices. :)
I don't think perf per watt was a differentiator in the compute chosen for your TV, your monitor, your AV receiver, your fridge, etc.
And it's not unheard of for them to have FPGAs for that reason.
For anything using floating point maths, it isn't true.
Substantial gains in terms of performance per watt for FPGAs?
While Xilinx posts record quarterly profits and there are more FPGAs moved than ever before.
But go on. Enlighten us...
"There are very very very few compute tasks where an FPGA solves a problem with better performance per watt than both a CPU and a GPU."
Oh right. Let me just slap those into my satellite, radio system, aircraft control system, military system, enmbedded system... How could I have not seen the light?
"I would bet that emulating a RISC-V program on x64 is far more power efficient than running a RISC-V core on an FPGA for example." Hahahahahahaha. What size bet, chief? I need a new pair of shoes.
And since you mentioned perf-per-dollar -- ignoring soft CPUs, any deeply pipelined algorithm is very likely going to destroy price-comparable CPUs in terms of throughput e.g. you can do 16-to-32 bytes per cycle of AES on a dinky FPGA from 10 years ago for a few dollars, and at 50MHz you're doing 1.6GB/s, and people have been achieving this, or multiple times this, for 15+ years. Things like TDP are not a measure of "overall system design efficiency", it's a measure of thermal capacity, thermal budgets, and nothing more. (BTW, the only general purpose CPU that comes close to this number directly for AES is, like, Ice Lake, since VAESNI can turn out 16 bytes per cycle or whatever IIRC, but now you're well back into "multiple watts" territory on a multi-GHz CPU.) The reason people still use CPUs for these tasks isn't because they don't want better performance: it's because software has better agility and is easier to acquire and modify and distribute. You can have systems that are dozens of times more efficient than commodity ones for a wide variety of tasks, they will just be a pain in the ass to use, program, acquire, and build. You can figure out most of this with basic napkin math.
Stop thinking so much about individual components, and start thinking about global system design -- because the entire system has its own performance criteria that may vary drastically compared to an individual component within it.
> There are very very very few compute tasks where an FPGA solves a problem with better performance per watt than both a CPU and a GPU.
This is like stating "There are very few tasks where a car would do as well as a snowmobile." They aren't comparable for purpose. Hacker News is pop-culture-y so everyone thinks "the only thing that matters is a cool CPU running in a rack with a 7nm TSMC process that can run my Go application on Kubernetes that will disrupt The Market of Smart Toilets" or whatever they do day to day, and extrapolate from there. But I'd guess the vast majority (like, 85% or more) of FPGA field has literally nothing to do with this. A huge amount of work basically revolves around "just" interfacing with analog devices at pico/nanosecond level resolutions...
The quest for best perf-per-watt is one largely driven by datacenters and personal consumer electronics, which have both high volume and high yield, and where the largest challenges revolve around power, cooling, etc. Furthermore these systems run workloads that are largely general purpose "state machines" that use some memory and some CPU and some disk, etc, and need to try and hit a balance among all of these. There is a large amount of resource arbitrage going on. "A rising tide lifts all boats" in this case. But little of that applies in this field; people use older nodes and the same chips for 5-10+ years (or longer) straight because they need to deliver latency-sensitive solutions, customized hardware at low volume, "hardware glue" for various analog systems, highly specialized algorithmic solutions for the lowest total BOM cost, etc. They aren't aiming to replace the systems created by digital Silicon Valley software programmers.
There is a push to move FPGAs into the datacenter (see: Xilinx and their exploding revenue) but it's unclear if they will settle into specific niches or be used as supplementary devices or whatnot.
The aren't many of the them so power usage isn't a bit cost, but their performance effects the performance of many other machines, where most of the power draw is.
MPSoCs have 4x Arm A53s and 2x Arm R5s (and Mali-400 graphics, although they're moving away from that because they found most customers don't care about that).
RFSoCs have something similar - strapped directly to tiles that do 4-6 Gbps analog/digital or digital/analog converters. If you're trying to make a badass missile front end, radio system, or radar system they're amazing!
They even have FEC hard cores that run incredibly fast. They're amazing for all kinds of waveform work.
It seems like they are just riding out their market share for as long as they can, which could be a while. Intel has a really strong brand.
Not exactly cheap though, at least in small quantities[2]
[1]: https://www.xilinx.com/products/silicon-devices/soc/zynq-700...
[2]: https://www.digikey.com/products/en/integrated-circuits-ics/...
Also, I've never done it myself but I've read that digikey prices are almost never the actual price for FPGAs even in relatively small quantities (haggling with avnet).
We still didn't end up _paying_ list price (after I made the purchasing guy apologize - no details, but he was 100% in the wrong).
I looked up a random i.MX6 processor from NXP. It’s $32.08 for one of them, and $20.95 per part when you get a reel of 500. If you need a few thousand units made, it’s perfectly reasonable to order parts from Digi-Key. You might be overpaying compared to what a good purchasing person can get you, but it’s fine for a few thousand parts, and quick and easy.
Look up any Xilinx part on Digi-Key, and there’s just a single price break at 1 unit. Even Lattice parts only go up to price breaks of 100.
While i don't care so much about the systems they emulate, and the cores they offer, this seems like a nice place to get started because of the many examples one can learn from.
Also Intel themselves offer many tutorials for it, on github and elsewhere.
And it creates an 'ecosystem' of reasonably available hardware expansions, without the usual markup for that stuff, should one need, or want them.
Would i start today, i'd use this. As it is, i've spent much more for similar stuff in the past.
I approve!
In other words, don't get some FPGA with your micro. Get a micro with your FPGA. The later exists.