Programming abstractions for preemptive scheduling in FPGAs using partial reconfiguration

08/26/2022
by   Gabriel Rodriguez-Canal, et al.
0

FPGAs are an attractive type of accelerator for all-purpose HPC computing systems due to the possibility of deploying tailored hardware on demand. However, the common tools for programming and operating FPGAs are still complex to use, specially in scenarios where diverse types of tasks should be dynamically executed. In this work we present a programming abstraction with a simple interface that internally leverages High-Level Synthesis, Dynamic Partial Reconfiguration and synchronisation mechanisms to use an FPGA as a multi-tasking server with preemptive scheduling and priority queues. This leads to a better use of the FPGA resources, allowing the execution of several kernels at the same time and deploying the most urgent ones as fast as possible. The results of our experimental study show that our approach incurs only a 1.66 when using two RRs, whilst presenting a significant performance improvement over the traditional non-preemptive full reconfiguration approach.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset