КОМПЛЕКС СРЕДСТВ ТРАНСЛЯЦИИ ПРОГРАММ НА ЯЗЫКЕ C В ПРОГРАММЫ НА ЯЗЫКЕ ПОТОКА ДАННЫХ COLAMO

  • А. И. Дордопуло
  • A.A. Гуленок
  • А.В. Бовкун
  • И.И. Левин
  • В. А. Гудков
  • С.А. Дудко
Ключевые слова: Информационные графы, компилятор, трансляция программ, язык C, редукция производительности, реконфигурируемые вычислительные системы, программирование многопроцессорных вычислительных систем

Аннотация

Рассматриваются программные средства трансляции последовательных программ
на языке C в масштабируемые параллельно-конвейерные программы на языке программи-
рования реконфигурируемых вычислительных систем COLAMO. В отличие от существую-
щих средств высокоуровневого синтеза, результатом трансляции является не IP-ядро
фрагмента задачи, а комплексное решение задачи для многокристальных реконфигурируе-
мых вычислительных систем с автоматической синхронизацией информационных и управ-
ляющих сигналов. Рассмотрены основные этапы трансляции последовательной программы
на языке C: преобразование в информационный граф, анализ информационных зависимо-
стей и выделение функциональных подграфов, преобразование в масштабируемую ресурсо-
независимую параллельно-конвейерную форму и масштабирование программы на языке
COLAMO для заданной многокристальной реконфигурируемой вычислительной системы.
Масштабирование программы осуществляется с помощью методов редукции производи-
тельности абсолютно-параллельной формы задачи – информационного графа, который
адаптируется под архитектуру реконфигурируемой вычислительной системы. Разрабо-
тан ряд правил, позволяющих существенно сократить число шагов преобразований при
масштабировании задачи и обеспечить плотный поток обработки данных в функциональ-
ных подграфах задачи. Созданный комплекс средств трансляции программ на языке C в
конфигурационные файлы ПЛИС позволяет существенно сократить время синтеза вычис-
лительной структуры задачи для многокристальных РВС и обеспечить сокращение общего
времени решения задачи.

Литература

1. Voevodin V.V., Voevodin Vl.V. Parallel'nye vychisleniya [Parallel computing]. Saint Petersburg:
BKhV-Peterburg, 2002, 608 p. ISBN 5-94157-160-7.
2. Guzik V.F., Kalyaev I.A., Levin I.I. Rekonfiguriruemye vychislitel'nye sistemy [Reconfigurable
computing systems]. Taganrog: Izd-vo YuFU, 2016, 472 p.
3. Trimberger S.M. Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA
Technology, in Proceedings of the IEEE, March 2015, Vol. 103, No. 3, pp. 318-331. Doi:
10.1109/JPROC.2015.2392104.
4. Nane R. et al. A Survey and Evaluation of FPGA High-Level Synthesis Tools, in IEEE Transactions
on Computer-Aided Design of Integrated Circuits and Systems, Oct. 2016, Vol. 35,
No. 10, pp. 1591-1604. Doi: 10.1109/TCAD.2015.2513673.
5. Nane R., Sima V.-M., Olivier B., Meeuws R., Yankova Y., Bertels K. DWARV 2.0: A CoSybased
C-to-VHDL Hardware Compiler, In FPL, 2012, pp. 619-622.
6. Pilato C. and Ferrandi F. Bambu: A Modular Framework for the High Level Synthesis of
Memory-intensive Applications, In FPL, 2013, pp. 1-4.
7. Canis A., Choi J., Aldham M., Zhang V., Kammoona A., Anderson J.H., Brown S., Czajkowski
T. LegUp: High-Level Synthesis for FPGA-based Processor/Accelerator Systems, In ACM
FPGA, 2011, pp. 33-36.
8. Make Slow Software Run Fast with Vivado HLS. Available at: https://www.xilinx.com/ publications/
xcellonline/run-fast-with-Vivado-HLS.pdf.
9. Vitis Unified Software Platform Documentation. Application Acceleration Development.
Available at: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/
ug1393 -vitis-application-acceleration.pdf (accessed 10 November 2020).
10. Levin Ilya, Dordopulo Alexey, Gudkov Vyacheslav, Gulenok Andrey, Bovkun Alexander,
Yevstafiyev Georgyi, Alekseev Kirill. Software Development Tools for FPGA-Based Reconfigurable
Systems Programming, In: Communications in Computer and Information Science,
Vol. 1129, Chapter Parallel Computing Technologies, 2019, pp. 1-16.
11. Levin I.I., Dordopulo A.I. K voprosu ob avtomaticheskom sozdanii parallel'nykh prikladnykh
programm dlya rekonfiguriruemykh vychislitel'nykh sistem [On the issue of automatic creation
of parallel application programs for reconfigurable computing systems], Vychislitel'nye
tekhnologii [Computing technologies], 2020, Vol. 25, No. 1, pp. 66-81.
12. Morvan A., Derrien S. and Quinton P. Efficient nested loop pipelining in high level synthesis
using polyhedral bubble insertion, 2011 International Conference on Field-Programmable
Technology, New Delhi, 2011, pp. 1-10. Doi: 10.1109/FPT.2011.6132715.
13. Jensen, Nicklas, Karlsson, Sven. Improving Loop Dependence Analysis, ACM Transactions on
Architecture and Code Optimization, 2017, Vol. 14 (3), pp. 1-24. Doi: 10.1145/3095754.
14. Solihin Yan. Fundamentals of parallel computer architecture: multichip and multicore systems.
Chapman and Hall/CRC, 2016. ISBN 978-1-4822-1118-4.
15. Cooper, Keith D., Torczon, Linda. Engineering a Compiler. Morgan Kaufmann, 2005. ISBN 1-
55860-698-X.
16. Kennedy Ken, Allen Randy. Optimizing Compilers for Modern Architectures. A Dependencebased
Approach. Morgan Kaufmann, 2001. ISBN 1-55860-286-0.
17. Muchnick Steven S. Advanced Compiler Design and Implementation. Morgan Kaufmann,
1997. ISBN 1-55860-320-4.
18. Vektorizatsiya programm [Vectorization of programs], Vektorizatsiya programm: teoriya,
metody, realizatsiya: Sb. perevodov statey [Vectorization of programs: theory, methods, implementation:
Collection of translations of articles]. Moscow: Mir, 1991, pp. 246-267.
19. Sistemy parallel'noy obrabotki [Parallel processing systems]: trans. from engl, ed. by
D. Ivensa. Moscow: Mir, 1985, 416 p.
20. Levin Ilya I. et al. Reconfigurable computer systems: from the first FPGAs towards liquid
cooling systems, Supercomputing Frontiers and Innovations, 2016, Vol. 3 (1), pp. 22-40. Doi:
10.14529/jsfi160102.
Опубликован
2021-02-25
Выпуск
Раздел
РАЗДЕЛ III. РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ