PacketShader: a GPU-Accelerated Software Router

PC-based software routers provide a cost-effective platform with easy extensibility and programmability. At the moment performance bottleneck of existing solutions lies in CPU. We identify the dominant factors that contribute to the CPU bottleneck to be the packet I/O. We optimize packet I/O by eliminating per-packet processing overhead. Yet still, CPU remains a potential bottleneck for computation-intensive workloads.

In this talk we present PacketShader, a framework for general packet processing with GPU acceleration. Modern GPUs data-parallel execution model fits nicely with independent packet processing in most router applications. PacketShader offloads parallely-executable computations to inexpensive GPUs with high computing power while carefully interleaving the router applications across CPU and GPU. It greatly reduces CPU overhead by batch processing multiple packets at packet reception, and piplelines packet processing through stages of packet reception, error handling, offloading to GPU, and forwarding.

We demonstrate that PacketShader outperforms existing software routers by more than a factor of four and routes 64-byte IPv4 packets at 38 Gbps on a single commodity PC. GPU brings significant improvement in processing IPsec, IPv6, and OpenFlow traffic. PacketShader presents a clear path for high-performance software routers with scalability.

Date:
Speakers:
Sangjin Han
Affiliation:
KAIST
    • Portrait of Jeff Running

      Jeff Running