  With CPU scaling slowing down in today's data centers, more functionalities
are being offloaded from the CPU to auxiliary devices. One such device is the
SmartNIC, which is being increasingly adopted in data centers. In today's cloud
environment, VMs on the same server can each have their own network computation
(or network tasks) or workflows of network tasks to offload to a SmartNIC.
These network tasks can be dynamically added/removed as VMs come and go and can
be shared across VMs. Such dynamism demands that a SmartNIC not only schedules
and processes packets but also manages and executes offloaded network tasks for
different users. Although software solutions like an OS exist for managing
software-based network tasks, such software-based SmartNICs cannot keep up with
the quickly increasing data-center network speed.
  This paper proposes a new SmartNIC platform called SuperNIC that allows
multiple tenants to efficiently and safely offload FPGA-based network
computation DAGs. For efficiency and scalability, our core idea is to group
network tasks into chains that are connected and scheduled as one unit. We
further propose techniques to automatically scale network task chains with
different types of parallelism. Moreover, we propose a fair share mechanism
that considers both fair space sharing and fair time sharing of different types
of hardware resources. Our FPGA prototype of SuperNIC achieves high bandwidth,
low latency performance whilst efficiently utilizing and fairly sharing
resources.
