Cora: Accelerating Stateful Network Applications with SmartNICs
This addresses performance and cost issues for networked applications by enabling efficient SmartNIC offloading, though it is incremental as it builds on existing SmartNIC hardware.
The paper tackles the challenge of offloading stateful network applications to SmartNICs by proposing Cora, a compiler and runtime that optimizes partitioning to reduce CPU usage and accelerate performance, achieving up to 94.0% CPU core savings and 44.9%-82.3% speedups.
With the growing performance requirements on networked applications, there is a new trend of offloading stateful network applications to SmartNICs to improve performance and reduce the total cost of ownership. However, offloading stateful network applications is non-trivial due to state operation complexity, state resource consumption, and the complicated relationship between traffic and state. Naively partitioning the program by state or traffic can result in a suboptimal partition plan with higher CPU usage or even packet drops. In this paper, we propose Cora, a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts. Cora compiler introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan. Cora runtime can monitor traffic dynamics and adapt to minimize CPU usage. Cora is built atop Netronome Agilio and BlueField 2 SmartNICs. Our evaluation shows that for the same throughput target, Cora can propose partition plans saving up to 94.0% CPU cores, 1.9 times more than baseline solutions. Under the same resource constraint, Cora can accelerate network functions by 44.9%-82.3%. Cora runtime can adapt to traffic changes and keep CPU usage low.