High-Level Synthesis Toolchain “Theseus” for Multichip Reconfigurable Computer Systems

Authors

DOI:

https://doi.org/10.14529/jsfi230202

Keywords:

high-level synthesis, HLS, program translation, C language, performance reduction, reconfigurable computer system, programming of multiprocessor computer systems

Abstract

In the paper we consider the high-level synthesis toolchain for transformation of programs written in C (the standard ISO/IEC 9899:1999) into configuration files of field programmable gate arrays (FPGAs) used in multichip reconfigurable computer systems. Unlike most academic (DWARV, BAMBU, LEGUP) and commercial (CatapultC, Vivado HLS, Vivado Vitis) high-level synthesis tools, “Theseus” uses the original methodology of transformation (porting) sequential calculations into a parallel-pipeline configuration of FPGA hardware. For a sequential program, an information graph is created and transformed into the maximally parallel structure, which is then ported to a specified configuration of the reconfigurable computer system using formal methods of reduction of performance and hardware costs without marking the source text with auxiliary parallelization directives. The distinctive feature of the approach is a significantly smaller number of analyzed variants in comparison to parallelizing compilers. Due to this, it is possible to reduce the porting time of sequential programs in the synthesis of solutions for reconfigurable computer systems with a set of FPGA chips interconnected by a spatial communication system. In the paper we show the results of porting a number of application tasks to the architecture of various reconfigurable computer systems using the proposed “Theseus” toolchain.

References

Antonov, A.S., Afanasyev, I.V., Voevodin, Vl.V.: High-performance computing platforms: current status and development trends. Num. Meth. Prog. 22(2), 135–177 (2021). https://doi.org/10.26089/NumMet.v22r210

Guzik, V.F., Kalyaev, I.A., Levin, I.I.: Reconfigurable computer systems. SFedU Publishing, Taganrog (2016). 472 p.

Levin, I., Dordopulo, A., Fedorov, A., Kalyaev, I.: Reconfigurable computer systems: from the first FPGAs towards liquid cooling systems. Supercomputing Frontiers and Innovations 3(1), 22–40 (2016). https://doi.org/10.14529/jsfi160102

Nane, R., Sima, V., Pilato, C. et al.: A Survey and Evaluation of FPGA High-Level Synthesis Tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 35(10), 1591–1604 (2016). https://doi.org/10.1109/TCAD.2015.2513673

Numan, M.W., Phillips, B.J., Puddy, G.S., Falkner, K.: Towards Automatic High-Level Code Deployment on Reconfigurable Platforms: A Survey of High-Level Synthesis Tools and Toolchains. IEEE Access 8, 174692–174722 (2020). https://doi.org/10.1109/ACCESS.2020.3024098

Nane, R., Sima, V.-M., Olivier, B., et al.: DWARV 2.0: A CoSy-based C-to-VHDL Hardware Compiler. In: 22nd International Conference on Field Programmable Logic and Applications (FPL), Oslo, Norway, August 29-31, 2012. pp. 619–622. IEEE (2012). https://doi.org/10.1109/FPL.2012.6339221

Pilato, C., Ferrandi, F.: Bambu: A Modular Framework for the High Level Synthesis of Memory-intensive Applications. In: 2013 23rd International Conference on Field programmable Logic and Applications, Porto, Portugal, September 2-4, 2013. pp. 1–4. IEEE (2013). https://doi.org/10.1109/FPL.2013.6645550

Canis, A., Choi, J., Aldham, M., et al.: LegUp: High-Level Synthesis for FPGA-based Processor/Accelerator Systems. In: Proceedings of the ACM/SIGDA 19th International Symposium on Field Programmable Gate Arrays, FPGA 2011, Monterey, California, USA, February 27 – March 1, 2011. pp. 33–36. ACM (2011). https://doi.org/10.1145/1950413.1950423

Make Slow Software Run Fast with Vivado HLS. https://www.xilinx.com/publications/xcellonline/run-fast-with-Vivado-HLS.pdf, accessed: 2023-03-23

Vitis Unified Software Platform Documentation. Application Acceleration Development. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1393-vitis-application-acceleration.pdf (2019), accessed: 2023-03-23

Tarasov, I.: Designing for Xilinx FPGAs using high-level languages in Vivado HLS environment. Components and Technologies 12 (2013), https://kit-e.ru/fpga/vivado-hls/

Kolganov, A.S. An experience of applying the parallelization regions for the step-by-step parallelization of software packages using the SAPFOR system. Num. Meth. Prog. 21(66), 388–404 (2020). https://doi.org/10.26089/NumMet.v21r432

Voevodin, V.V., Voevodin, Vl.V.: Parallel computing. BHV-Petersburg, Saint-Petersburg (2002). 608 p.

Dordopulo, A.I., Levin, I.I.: Performance Reduction For Automatic Development of Parallel Applications For Reconfigurable Computer Systems. Supercomputing Frontiers and Innovations 7(2), 4–23 (2020). https://doi.org/10.14529/jsfi200201

Computational blocks of SRC of supercomputers and neurocomputers. http://superevm.ru/index.php?page=modern-developments, accessed: 2023-04-11

Downloads

Published

2023-08-28

How to Cite

Dordopulo, A. I., Levin, I. I., Gudkov, V. A., & Gulenok, A. A. (2023). High-Level Synthesis Toolchain “Theseus” for Multichip Reconfigurable Computer Systems. Supercomputing Frontiers and Innovations, 10(2), 18–31. https://doi.org/10.14529/jsfi230202