Supporting compiler-driven FPGA virtualization [article]

Tiffany Ya Yang, Austin, The University Of Texas At, Christopher J. Rossbach
2021
Many cloud providers now support on-demand FPGA acceleration in data centers. Though FPGAs can exceed general-purpose CPU performance by orders of magnitude, they introduce challenges that limit their popularity. Virtualization provides programmability and cost-effectiveness, two features that are critical to making FPGAs accessible as a mainstream acceleration technology. One recently proposed system to virtualize FPGAs is Synergy. Synergy provides suspend and resume, program migration,
more » ... and temporal multiplexing, and portability. These capabilities are enabled by extending features from the Cascade JIT compiler [52] and the AmorphOS runtime system [31]. Because Synergy provides compiler-based state capture, it does not require hardware support. This makes it deployable on devices available in data centers today. Using Synergy to virtualize an application comes with a performance cost of 3 − 4× that of an unvirtualized application and an increase in FPGA resource utilization. These overheads are primarily due to the mechanism Synergy uses to manage each stateful value in the application. Many applications periodically reach quiescent points during execution, when their state is limited to a subset of stateful variables, which can reduce these overheads. We implemented a quiescence interface in both AmorphOS and Synergy. A benchmark with substantial in-flight state was modified to use the quiescence interface, and it suffers one order of magnitude less performance degradation during state capture. This work also discusses the challenges of adapting a deep neural network accelerator on Synergy.
doi:10.26153/tsw/14445 fatcat:lvpiud5nojco5cq53hyuz6b6ei