4 ms·
As (very much) a layman I've hoped to see something like dynamic hardware acceleration. Eg for a game that has advanced hair simulation, or 3d sound simulation:
by thereisnospork 3y ago
As (very much) a layman I've hoped to see something like dynamic hardware acceleration. Eg for a game that has advanced hair simulation, or 3d sound simulation: reconfigure the fpga and offload the calculations. Maybe even more pedestrian things like fpga driven bullet tragectory physics might be implemented at the game engine level.
More optimistically something along the lines of hands-off offloading, where if the scheduler sees enough of the same type of calculation (e.g sparse matrix multiplication) it can reconfigure the fpga and offload.
- magicalhippo 3y agoI was thinking it would be a good fit for crypto. New algorithms could be implemented with better-than-software performance, constant-time algorithms could be ensured etc.
- adrian_b 3y agoTrue. For instance, SHA-3 is quite slow on x86 CPUs, which, unlike the recent ARM CPUs, do not have any hardware instructions to accelerate it. If there had been an included FPGA, it would have been easy to implement a very fast SHA-3, as its hardware cost is very low.
- rwmj 3y agoI think the problem is this misunderstands what FPGAs are good at. They're actually very bad (or at least painfully slow) at calculations like your examples. GPUs are good at that. FPGAs excel in parallelizing very simple operations. One example where FPGAs are good is where you might want to look for a specific string in a network packet. Because FPGAs are electronic circuits you can replicate the "match a byte" logic thousands of times and have those comparisons all run in parallel and the results combined with AND & OR gates into a yes/no decision. (I think the HFT crowd do this sort of thing to preclassify network packets before forwarding candidate packets up to software layers to do the full decision making).
- soulbadguy 3y ago> FPGAs excel in parallelizing very simple operations. I don't think that's a good characterization. FPGA are good at what they end up being programmed for. And in the final analysis, everything a chip does is broken down to simple operation. The FPGA selling point has always been around perf/W and efficiency with regard to a "set of task". An ASIC will always be faster for a specific task, and CPU will always be faster on average on everything. However, when considering say "compression" or "check-sum" as general class of algorithm, and FPGA with a set of predefined configuration could be better and cheaper.
- 70rd 3y agoGood at what they're being programmed for is a bit of tautology. FPGAs being selected for performance per watt was only a fairly recent phenomenon, when they were deployed on semi large scale as password crackers/cryptocurrency miners. Their real strength is ultimately real time processing (DSP or networking), with reconfigurability often quite valuable for networking applications. For DSP applications it's usually because a MOQ of custom silicon can't be justified.
- imtringued 3y agoFPGAs excel at heterogenous tasks that are branching heavy but only use small amounts of local memory. You can call that simple but those are the bane of CPUs and GPUs. The moment you are memory heavy the FPGA loses it's edge because CPUs and GPUs are designed around hiding memory latency really well and they overall have higher memory bandwidths.