Session

Domain Specific Acclerators for Networking

Speakers

Tom Herbert
Felipe Almeida

Label

Moonshot

Session Type

Talk

Description

Domain Specific Accelerators (DSA) is a technology that is revolutionizing the datacenter and server design. While DSA has made inroads in other domains, Domain Specific Accelerators for networking has not yet been fully explored. In this presentation we outline the goals, problems, and solutions to realize the benefits of DSA in networking.

We can define three manifestations of DSA for networking: offloads, acceleration instructions, and accelerator engines. For each of these, we’ll discuss the user API, advantages, and disadvantages of the method. For offload we’ll discuss how disconnects between software and hardware have prevented offloads from reaching their full potential, and propose a solution for a facility in Linux that ensures robust and correct offloads. We will also present two classes of acceleration instructions we’ve implemented in RISC-V to speed up networking processing in a CPU. Next, we present a message based interface over FIFOs for invoking hardware accelerators with an RPC like interface, and a method of accelerator pipelining to create “super accelerators”. We show how these three manifestations are complementary and can work in tandem to realize the benefits of hardware acceleration in the host networking data path.

A first class requirement in DSA for networking is ease-of-use. A programmer should be able to use DSA without having to understand the details of acceleration hardware. In the best case scenario, they just write simple and intuitive code for their datapath and compilers figure out how to turn code into optimized executables using DSA.Accordingly, compilers are an essential part of the solution for DSA for networking, and we will discuss some compiler innovations for dealing with Domain Specific Accelerators.