Программные средства высокоуровневого синтеза для многокристальных реконфигурируемых вычислительных систем

Алексей Игоревич Дордопуло, Илья Израилевич Левин, Вячеслав Александрович Гудков, Андрей Александрович Гуленок

Аннотация


В статье описывается оригинальный комплекс высокоуровневого синтеза, преобразующий последовательные программы в схемотехническую конфигурацию специализированных аппаратных средств для реконфигурируемых вычислительных систем. Из исходной последовательной программы строится абсолютно-параллельная форма — информационный граф. Далее, граф преобразуется в ресурсонезависимую параллельно-конвейерную форму — кадровую структуру, которую можно адаптировать к различному аппаратному ресурсу. Преобразование кадровой структуры в информационно-эквивалентную, но занимающую меньший аппаратный ресурс, структуру выполняется с помощью формализованных методов редукции производительности, что позволяет автоматически получить рациональное решение для заданной многокристальной реконфигурируемой вычислительной системы. В отличие от известных средств высокоуровневого синтеза результатом преобразования является не IP-ядро вычислительно-трудоемкого фрагмента, а автоматически синхронизированное решение прикладной задачи для всех кристаллов ПЛИС реконфигурируемой вычислительной системы. По сравнению с распараллеливающими компиляторами, число анализируемых вариантов синтеза рационального решения существенно меньше, что является отличительной особенностью описываемого комплекса. Применение программных средств высокоуровневого синтеза рассматривается на примере задачи решения системы линейных алгебраических уравнений методом Гаусса, содержащей информационно-взаимозависимые вычислительные фрагменты с существенно разной степенью параллелизма.

Ключевые слова


высокоуровневый синтез; трансляция программ; язык C; редукция производительности; реконфигурируемые вычислительные системы; программирование многопроцессорных вычислительных систем

Полный текст:

PDF

Литература


Voevodin V.V., Voevodin Vl.V. Parallel computing. BHV-Petersburg, 2002. 608 p. (in Russian).

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

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

Levin I., Dordopulo A., Fedorov A., Kalyaev I. Reconfigurable computer systems: from the first FPGAs towards liquid cooling systems. Supercomputing Frontiers and Innovations. 2016. Vol. 3, no. 1. P. 22–40. DOI: 10.14529/jsfi160102.

Nane R., Sima V.-M., 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. 2016. Vol. 35, no. 10. P. 1591–1604. DOI: 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. 2020. Vol. 8. P. 174692–174722. DOI: 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. 22nd International Conference on Field Programmable Logic and Applications (FPL), Oslo, Norway, August 29-31, 2012. IEEE, 2012. P. 619–622. DOI: 10.1109/FPL.2012.6339221.

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

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

Make Slow Software Run Fast with Vivado HLS. URL: https://www.xilinx.com/publications/xcellonline/run-fast-with-Vivado-HLS.pdf (accessed: 10.03.2021).

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

Tarasov I. Designing for Xilinx FPGAs using high-level languages in Vivado HLS environment. Components and Technologies. 2013. No. 12(149). P. 40–48 (in Russian).

Kolganov A.S. An experience of applying the parallelization regions for the step-by-step parallelization of software packages using the SAPFOR system. Numerical methods and programming. 2020. Vol. 21, no. 66. P. 388–404. DOI: 10.26089/NumMet.v21r432.

Levin I., Dordopulo A., Gudkov V., et al. Software Development Tools for FPGA-Based Reconfigurable Systems Programming. Russian Supercomputing Days. Vol. 1129 / ed. by Vl. Voevodin, S. Sobolev. Cham: Springer, 2019. P. 625–640. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_51.

Dordopulo A.I., Levin I.I. Performance Reduction For Automatic Development of Parallel Applications For Reconfigurable Computer Systems. Supercomputing Frontiers and Innovations. 2020. Vol. 7, no. 2. P. 4–23. DOI: 10.14529/jsfi200201.

Levin I.I., Dordopulo A.I., Gudkov V.A., et al. A set of programming tools for reconfigurable computing systems based on FPGA. Parallel Computational Technologies (PaVT’2020): Short articles and posters, Perm, March 31 - April 2, 2020. Chelyabinsk: SUSU Publishing Center, 2020. P. 163–173. DOI: 10.14529/cmse150202 (in Russian).

Levin I.I., Dordopulo A.I., Gudkov V.A., et al. Programming tools for reconfigurable and hybrid computing systems based on FPGA. Parallel Computational Technologies (PaVT’2019): Short articles and posters, Kaliningrad, April 2-4, 2019. Chelyabinsk: SUSU Publishing Center, 2019. P. 299–312 (in Russian).




DOI: http://dx.doi.org/10.14529/cmse220301