Speaker
Alessandro Lonardo
(ROMA1)
Description
NaNet is a modular design of a family of FPGA-based PCIe Network Interface Cards specialized for low-latency real-time operations. NaNet features a Network Interface module that implements RDMA-style communications both with the host (CPU) and the GPU accelerators memories (GPUDirect RDMA) relying on the services of a high performance PCIe Gen2/3 x8 core. NaNet I/O Interface is highly flexible and is designed for low and predictable communication latency: a dedicated stage manages the network stack protocol in the FPGA logic offloading the host operating system from this task and thus eliminating the associated process jitter effects. Between the two above mentioned modules, stand the data processing and switch modules: the first implements application-dependent processing on streams, e.g. performing compression algorithms, while the second routes data streams between the I/O channels and the Network Interface module. This general architecture has been specialized up to now into three configurations, namely NaNet-1, NaNet3and NaNet-10 in order to meet the requirements of different experimental setups. NaNet-1 features a GbE channel plus three custom 20 Gbps serial channels, NaNet3 supports four custom 2.5 Gbps deterministic latency optical channels while NaNet-10 features four 10GbE SFP+ ports.We will provide performance results for the three NaNet implementations and describe their usage in the CERN NA62 and KM3NeT-IT underwater neutrino telescope experiments, showing that the architecture is very flexible and yet capable of matching the requirements of low-latency real-time applications with intensive I/O tasks involving the CPU and/or the GPU accelerators.