GAON: General-purpose Application Offload to Near-Network Processors
Prof. Mark Silberstein, Technion
Abstract
Emerging intelligent bump-in-the-wire network adapters, iNICs, are
increasingly deployed for accelerating custom network functions in
large-scale data center and cloud environments such as Microsoft Azure.
However, their potential to speed up network-intensive server applications
remains largely unexplored due to the lack of appropriate programming
models and OS abstractions.
GAON is a framework that facilitates accelerating network applications
using iNICs. GAON introduces an *ikernel *abstraction that encapsulates the
code and state of an iNIC-resident application task. The application
dynamically invokes the ikernel by attaching it to a network socket,
thereby rerouting the socket traffic to the ikernel. GAON can securely
execute multiple ikernels of different applications, isolating ikernel
state and network traffic, arbitrating access to network from ikernels and
CPU applications, and providing protected access to the ikernel state from
the owning CPU application.
We prototype GAON on Mellanox Innova 40 Gbps iNICs and develop several
accelerated versions of realistic server workloads. For example, the
transparent key-value store cache ikernel serves 31Mtps (70% of the line rate) at
5 μs 99th percentile latency for 10 byte key/value pairs, seamlessly improving the
host performance by up to 55× and 2.3× for 98% and 60% cache hit rate respectively,
with almost no modification to the original memcached server running on the same
machine.
About the speaker
Mark Silberstein is an Assistant Professor at the department of Electrical
Engineering, Technion - Israel Institute of Technology. Mark is interested
in accelerator-rich systems and OS abstractions and services for and *on*
accelerators, with the ultimate goal to break out of the CPU-centric OS
models (HotOS17). His works include GPUfs (ASPLOS13), GPUnet (OSDI14) and
GPUrdma libraries for native file system, networking and RDMA support for
GPU programs and application-managed virtual memory for GPUs (ISCA16) and
SGX enclaves (EuroSYS17)