Hacker News new | ask | show | jobs
by GuB-42 1996 days ago
Everyone seems to be talking about accelerated instructions but how about I/O?

FPGAs are awesome at asynchronous I/O and low latency. We could implement network stacks, sound and video processing, etc... It can start a TLS handshake as soon as the electrical signal hits the ethernet port, while the CPU is not even aware of it happening. It can timestamp MIDI input down to the microsecond and replay with the same precision. It can process position data from a VR headset at the very last moment in the graphics pipeline. Maybe even do something like a software defined radio.

Basically every simple but latency-critical operations. Of course, embedded/realtime systems are a prime target.

4 comments

A fair amount of enterprise NICs in data centers do exactly this, e.g. Intel FPGA smart NICs

I don't know enough to know how this being on the CPU would affect performance in this scenario, but I'd love to learn more!

That's pretty much what Xilinx's Zynq product lines are already targeting, including embedded. They're comparatively nice boards to work on, as long as you can swallow the BOM cost.
Microsoft has already done the networking thing with project catapult as of a few years ago. I think they also use it for ai.

https://www.microsoft.com/en-us/research/project/project-cat...

Network example is wasteful. There are already NICs that have FPGA and a whole set of linux's kernel features. You wouldn't want that to be that far away from the NIC itself.

PTP works just like that - timestamps incoming and outgoing packets right after/before packet hit the wire. There is eXpress Data Path that can offload eBPF programs to NICs and deal with packets without them even coming into even kernel at all.

High Frequency Traders do exactly that IIRC today.

As for video processing codecs today are way too complex to be run there. Well, no one will stop you from running something like an integer DCT part on FPGA.

VR thing... Generally, aside from Nvidia companies don't want to ship entire FPGA to end customers (guess why Nvidia G-Sync monitors used to be so expensive). Something like Snapdragon XR2 "solves" VR. Also, in order to render a picture you need to know headset position early, not at the last moment. How would you know what to render?

How useful is the subject depends entirely on FPGA capability, and it's size. I bet it will be more useful for things like implementing some hash function there or something like that.

IMO this will be a very niche product inside already niche market.