Tcpserver streaming data directly to fpga core?


So, when i think about FPGAs in the cloud, i want to to stream data directly to then as fast as posible and without sacrify speed or latency… what are the consideration to start a project where a go client will stream data to cloud so it could be processed by a “fpga core” implemented in go then send it back to the client.

The idea is to reduce latency as much as posible and as the network allows it of course, but not sure where to start looking at this data

|client| -----> tcp server -----> fpga
|client| <----- tcp server <-------/


What sort of architecture are you looking for? It’s possible at this stage to have a user-space process managing the TCP connection & communicating with the FGPA. Having the FPGA directly access the network is not possible right now, due to restrictions by Amazon. See “Q: Can the FPGAs on F1 directly access Amazon’s network?” in their FAQ for an explanation.


It is possible to implement the complete TCP protocol in FPGA either for server network acceleration or for on-device application code. That approach is already commonly used in the financial sector for low latency trading platforms, but those are usually proprietary systems where the high development costs of the traditional FPGA design flow can be justified by the application. Providing a general purpose solution is going to be quite challenging, but is certainly something that is of interest.


Not to mention the obstacles to providing PHY, Network connections etc in a public cloud setting.


Yep. What I can say that’s public information is that network connectivity is planned to be done via DPDK on the AWS F1 instances.