Ming Liu

Project Overview

SmartNICs (DPUs/IPUs) have evolved far beyond packet processors. They now integrate multicore CPUs, programmable datapath processors, DMA engines, cryptographic accelerators, memory hierarchies, and hardware virtualization, effectively becoming independent computing platforms attached to the network. Yet today’s systems continue to treat SmartNICs as packet offload engines, exposing only low-level programming interfaces that underutilize their computational capabilities.

The CleanNIC (Clean-Slate SmartNIC) project rethinks SmartNICs as a systems platform. We redesign their programming abstractions, runtime systems, virtualization mechanisms, communication interfaces, and datapath architecture, spanning the entire software stack from hardware characterization and debugging to RPC runtimes, secure execution, I/O virtualization, and programmable datapaths. Our goal is to transform SmartNICs into efficient, programmable, and general-purpose execution platforms for future cloud and distributed systems.

Challenges

Although modern SmartNICs have evolved into powerful computing platforms, existing software stacks continue to treat them as traditional NICs. This mismatch leads to several challenges:

Our Approach

Our insight is that system-level abstractions tailored to modern cloud applications are essential to fully unlocking the computational capabilities of SmartNICs. We ask: What are the right abstractions, runtimes, and system architectures for SmartNICs to become general-purpose computing platforms? In this project, we have touched the SmartNIC software stack spanning hardware characterization and observability, debugging infrastructure, programming models, RPC runtimes, secure execution, I/O virtualization, and programmable datapath architectures.

Here are the systems we have built.