FPGA accelerators on the NIC enable the offloading of expensive packet processing tasks from the CPU. However, FPGAs have limited resources that may need to be shared among diverse applications, and programming them is difficult. We present a solution to run Linux's eXpress Data Path programs written in eBPF on FPGAs, using only a fraction of the available hardware resources while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators. Nonetheless, we show that many of the instructions of an eBPF program can be compressed, parallelized or completely removed, when targeting a purpose-built FPGA executor, thereby significantly improving performance. We leverage that to design hXDP, which includes (i) an optimizing-compiler that parallelizes and translates eBPF bytecode to an extended eBPF Instruction-set Architecture defined by us; a (ii) soft-CPU to execute such instructions on FPGA; and (iii) an FPGA-based infrastructure to provide XDP's maps and helper functions as defined within the Linux kernel. We implement hXDP on an FPGA NIC and evaluate it running real-world unmodified eBPF programs. Our implementation is clocked at 156.25MHz, uses about 15% of the FPGA resources, and can run dynamically loaded programs. Despite these modest requirements, it achieves the packet processing throughput of a high-end CPU core and provides a 10x lower packet forwarding latency.

Brunella, M.s., Belocchi, G., Bonola, M., Pontarelli, S., Siracusano, G., Bianchi, G., et al. (2020). hXDP: Efficient software packet processing on FPGA NICs. In OSDI'20: Proceedings of the 14th USENIX Conference on Operating Systems Design and Implementation (pp.973-990). Berkeley, CA : USENIX Association.

hXDP: Efficient software packet processing on FPGA NICs

Belocchi G.;Bonola M.;Pontarelli S.;Bianchi G.;Petrucci L.;
2020-01-01

Abstract

FPGA accelerators on the NIC enable the offloading of expensive packet processing tasks from the CPU. However, FPGAs have limited resources that may need to be shared among diverse applications, and programming them is difficult. We present a solution to run Linux's eXpress Data Path programs written in eBPF on FPGAs, using only a fraction of the available hardware resources while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators. Nonetheless, we show that many of the instructions of an eBPF program can be compressed, parallelized or completely removed, when targeting a purpose-built FPGA executor, thereby significantly improving performance. We leverage that to design hXDP, which includes (i) an optimizing-compiler that parallelizes and translates eBPF bytecode to an extended eBPF Instruction-set Architecture defined by us; a (ii) soft-CPU to execute such instructions on FPGA; and (iii) an FPGA-based infrastructure to provide XDP's maps and helper functions as defined within the Linux kernel. We implement hXDP on an FPGA NIC and evaluate it running real-world unmodified eBPF programs. Our implementation is clocked at 156.25MHz, uses about 15% of the FPGA resources, and can run dynamically loaded programs. Despite these modest requirements, it achieves the packet processing throughput of a high-end CPU core and provides a 10x lower packet forwarding latency.
14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20)
2020
14
Rilevanza internazionale
2020
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
English
Intervento a convegno
Brunella, M.s., Belocchi, G., Bonola, M., Pontarelli, S., Siracusano, G., Bianchi, G., et al. (2020). hXDP: Efficient software packet processing on FPGA NICs. In OSDI'20: Proceedings of the 14th USENIX Conference on Operating Systems Design and Implementation (pp.973-990). Berkeley, CA : USENIX Association.
Brunella, Ms; Belocchi, G; Bonola, M; Pontarelli, S; Siracusano, G; Bianchi, G; Cammarano, A; Palumbo, A; Petrucci, L; Bifulco, R
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2108/395803
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 57
  • ???jsp.display-item.citation.isi??? ND
social impact