vFPIO: A Virtual I/O Abstraction for FPGA-accelerated I/O Devices
summary
vFPIO implements a virtual I/O module compiled into user logic, a vFPIO shell with a preemptive I/O transaction scheduler, and a host library with POSIX-like file APIs to rewire I/O paths at runtime. Prototype runs on x86 servers with AMD Xilinx Alveo U280 cards and supports PCIe, DRAM, HBM, and network. Measured overhead is low (~7% local, ~1.1% RDMA), reconfiguration is 20,000× faster, and priority scheduling boosts high-priority throughput by ~2×.
AI-written summary · about
chapters (10)
- 0:00vFPIO introduction
- 3:58FPGA shell challenges
- 7:11Design goals
- 9:58Portability via IO reconfiguration
- 11:21Performance isolation
- 13:10vFPIO workflow
- 14:35Evaluation results
- 15:58Device switching overhead
- 17:24Performance isolation benefits
- 18:27Conclusion
related talks
19mlibvfio-user: Status Update
27mVFIO User - Using VFIO as the IPC Protocol in Multi-process QEMU
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
21mVirtio Devices Emulation in SPDK Based on Vfio-User Protocol
21mTowards High-availability for Virtio-fs
19mI/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux
21mVirtio hardware accelerators and other news
41mVirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
