Enzian: An Open, General, CPU/FPGA Platform for Systems Software Research

Cock, Ramdas, Schwyn, Giardino, Turowski, He, Hossle, Korolija, Licciardello, Martsenko, Achermann, Alonso, Roscoe (2022)

What kind of paper is this?

The Story

The Platform

How is this research?

Categorization of existing platforms

  1. PCIe-based accelerators: data copies in bulk to/from accelerator; challenge for fine-grain computation.
  2. Fully cache-coherent protocols: good for fine-grain acceleration, but typically have small caches and no significant memory on the FPGA. (Kind of the opposite of the category above.)
  3. smartNIC FPGA: PCIe bus internal to the NIC; no direct connection between FPGA and CPU, so they are only used for network processing.
  4. SmartNIC FPGA w/direct CPU channel: (This was not called out as a class in the paper, but feels different enough that I wanted to.) Enables more complicated functionality on the NIC (e.g., KVstore) and allows for exploration of applications where FPGAs can provide acceleration with much shorter turn around than an ASIC.
  5. MPSoc: CPU and FPGA are on the same die. FPGA has access to cache protocol, so the FPGA can act like part of the CPU memory system, which enables research on remote memory protocols (e.g., CXL). These systems have wimpy cores.

Advantages of a research platform

Eval

  1. Cache Coherence Interconnect: Enzian (ECI) versus PCIe
  2. Network (TCP/IP and RDMA)
  3. PCIe Accelerator Style Application: Inference on GBDT (as in Coyote)
  4. FPGA as custom memory controller
  5. Instrumentation: fine-grain power monitoring

Other Use Cases