Speakers
Description
At LPC 2025, we presented an early prototype for running XDP programs directly on an AMD GPU from within the Linux kernel, without CUDA, ROCm, or any userspace component in the data path.1
Since then, the project has evolved into knod, an in-kernel network offload device, and an RFC patch set has been posted.2 knod uses the GPU as a kernel-managed packet-processing accelerator: the kernel JIT-compiles an XDP program into GPU machine code, the NIC places packets directly in GPU-accessible memory, and the GPU processes them in parallel and returns XDP verdicts. The RFC extends the original XDP prototype into a generic offload-device model, with RX IPsec as an additional use case.
Major changes since LPC 2025 include a redesigned NIC-to-GPU path that allows the GPU to consume packets directly, support for divergent control flow in GPU-offloaded BPF programs, RDNA2 support, and optimizations to batching, dispatch, occupancy, and memory transfers. The current RFC reports up to 70 Mpps for a Katran-derived XDP workload and 80 Gbit/s for RX IPsec.
This talk will walk through how knod has evolved since LPC 2025 and discuss the remaining design and implementation challenges: the boundaries among the networking core, bpf, drm, and accelerator drivers; per-CPU map and queue-affinity semantics on accelerators; further performance optimization; support for additional GPU architectures; and the Generic Netlink/YNL control plane and its integration with existing tools.