Abstract
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% overhead when using only one Reconfigurable Region (RR), and 4.04% when using two RRs, whilst presenting a significant performance improvement over the traditional non-preemptive full reconfiguration approach.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
The OpenACC application programming interface. https://www.openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.2-final.pdf. Accessed 19 May 2022
TOP500. https://www.top500.org/. Accessed 9 May 2022
Brown, N.: Exploring the acceleration of Nekbone on reconfigurable architectures (2020)
Moreton-Fernandez, A., et al.: Controllers: an abstraction to ease the use of hardware accelerators. Int. J. High Perf. Comput. Appl. 32(6), 838–853 (2018)
Vaishnav, A., et al.: Heterogeneous resource-elastic scheduling for CPU+ FPGA architectures. In: Proceedings of the 10th International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies, pp. 1–6 (2019)
Trott, C.R., et al.: Kokkos 3: programming model extensions for the exascale era. IEEE Trans. Parallel Distrib. Syst. 33(4), 805–817 (2022)
Rodriguez-Canal, G., Torres, Y., Andújar, F.J., Gonzalez-Escribano, A.: Efficient heterogeneous programming with FPGAs using the controller model. J. Supercomput. 77(12), 13995–14010 (2021). https://doi.org/10.1007/s11227-021-03792-7
Brown, N., et al.: It’s all about data movement: Optimising FPGA data access to boost performance. In: 2019 IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC), pp. 1–10. IEEE (2019)
Munshi, A.: The OpenCL specification. In: 2009 IEEE Hot Chips 21 Symposium (HCS), pp. 1–314. IEEE (2009)
Brown, N.: PYNQ API: C API for PYNQ FPGA board. https://github.com/mesham/pynq_api (2019). Accessed 20 June 2021
Vipin, K., Fahmy, S.A.: FPGA dynamic and partial reconfiguration: a survey of architectures, methods, and applications. ACM Comput. Surv. (CSUR) 51(4), 1–39 (2018)
Xilinx. Vivado design user suite guide - dynamic function eXchange. https://bit.ly/3MEDZTI. Accessed 9 May 2022
Acknowledgements
The authors acknowledge EPCC at the University of Edinburgh and EPSRC who have funded this work and provided the FPGA compute resource. This research has been partially funded by Junta de Castilla y León - FEDER Grants, project PROPHET-2 (VA226P20).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Rodriguez-Canal, G., Brown, N., Torres, Y., Gonzalez-Escribano, A. (2023). Programming Abstractions for Preemptive Scheduling on FPGAs Using Partial Reconfiguration. In: Singer, J., Elkhatib, Y., Blanco Heras, D., Diehl, P., Brown, N., Ilic, A. (eds) Euro-Par 2022: Parallel Processing Workshops. Euro-Par 2022. Lecture Notes in Computer Science, vol 13835. Springer, Cham. https://doi.org/10.1007/978-3-031-31209-0_10
Download citation
DOI: https://doi.org/10.1007/978-3-031-31209-0_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-31208-3
Online ISBN: 978-3-031-31209-0
eBook Packages: Computer ScienceComputer Science (R0)