Preview

Труды Института системного программирования РАН

Расширенный поиск

Сравнение инструментов высокоуровневого синтеза и конструирования цифровой аппаратуры

https://doi.org/10.15514/ISPRAS-2022-34(5)-1

Аннотация

Предметно-ориентированные системы, использующие ускорители на базе программируемых логических интегральных схем (ПЛИС), все чаще проектируются при помощи инструментов высокоуровневого синтеза и конструирования аппаратуры. В настоящее время разработчикам доступно множество таких инструментов, как открытых, так и коммерческих. В данной работе проведено экспериментальное сравнение нескольких существующих решений (языков и инструментов), а именно: Verilog (базовое решение), Chisel, Bluespec SystemVerilog (Bluespec Compiler), DSLX (XLS), MaxJ (MaxCompiler) и C (Bambu и Vivado HLS). Сравнение и анализ производились на примере алгоритма обратного дискретного косинусного преобразования матрицы 8×8 (ОДКП), широко используемого, в том числе, в JPEG- и MPEG-декодерах. В качестве метрик сравнения реализаций алгоритма ОДКП использовались: 1) степень автоматизации (насколько меньше исходного кода требуется для описания алгоритма по сравнению с Verilog); 2) контролируемость (возможность достижения заданных характеристик аппаратуры, а именно соотношения производительности к занимаемой площади); 3) гибкость (легкость внесения изменений в реализацию с целью достижения определенных характеристик). Для оценки характеристик синтезированных схем в реальном окружении были разработаны AXI-Stream-адаптеры. В исследовании показано, как отдельные оптимизации (настройки инструментов и модификации исходного кода) влияют на производительность системы и занимаемую площадь. Продемонстрировано, насколько важно уметь управлять балансом между пропускной способностью интерфейса и производительностью вычислительного ядра; даны рекомендации по разработке новых инструментов проектирования систем, использующих ускорители на основе ПЛИС.

Об авторах

Александр Сергеевич КАМКИН
Институт системного программирования имени В.П. Иванникова РАН, Российский экономический университет имени Г.В. Плеханова, Московский государственный университет имени М.В. Ломоносова, Московский физико-технический институт, НИУ “Высшая школа экономики”
Россия

Кандидат физико-математических наук, ведущий научный сотрудник отдела технологий программирования ИСП РАН, ведущий научный сотрудник научной лаборатории «Гетерогенные компьютерные системы» РЭУ им. Г.В. Плеханова; преподает в МГУ им. М.В. Ломоносова, МФТИ и НИУ ВШЭ



Михаил Михайлович ЧУПИЛКО
Институт системного программирования имени В.П. Иванникова РАН, Российский экономический университет имени Г.В. Плеханова
Россия

Кандидат физико-математических наук, старший научный сотрудник отдела технологий программирования ИСП РАН, старший научный сотрудник научной лаборатории «Гетерогенные компьютерные системы» РЭУ им. Г.В. Плеханова



Михаил Сергеевич ЛЕБЕДЕВ
Институт системного программирования имени В.П. Иванникова РАН, Российский экономический университет имени Г.В. Плеханова, НИУ “Высшая школа экономики”
Россия

Научный сотрудник ИСП РАН, старший научный сотрудник научной лаборатории «Гетерогенные компьютерные системы» РЭУ им. Г.В. Плеханова; преподает в НИУ ВШЭ



Сергей Александрович СМОЛОВ
Институт системного программирования имени В.П. Иванникова РАН, Российский экономический университет имени Г.В. Плеханова
Россия

Научный сотрудник отдела технологий программирования ИСП РАН, старший научный сотрудник научной лаборатории «Гетерогенные компьютерные системы» РЭУ им. Г.В. Плеханова



Георги ГАЙДАДЖИЕВ
Гронингенский университет, Российский экономический университет имени Г.В. Плеханова
Нидерланды

Профессор кафедры инновационных компьютерных архитектур Гронингенского университета и почетный приглашенный профессор Имперского колледжа Лондона, заведующий лабораторией «Гетерогенные компьютерные системы» РЭУ им. Г.В. Плеханова



Список литературы

1. Botros N.M. HDL Programming Fundamentals: VHDL and Verilog. Charles River Media, 2005, 506 p.

2. Coussy P., Gajski D.D. et al. An introduction to high-level synthesis. IEEE Design & Test of Computers, vol. 26, issue 4, 2009, pp. 8-17.

3. Bachrach J., Vo H. et al. Chisel: constructing hardware in a Scala embedded language. In Proc. of the Design Automation Conference (DAC), 2012, pp. 1216-1225.

4. IEEE Standard Specifications for the Implementations of 8x8 Inverse Discrete Cosine Transform. In IEEE Std 1180-1990, 1991, pp. 1-12.

5. Information technology – Digital compression and coding of continuous-tone still images: JPEG File Interchange Format (JFIF) – Part 5: ISO/IEC 10918-5:2013, 2013.

6. MPEG-2 decoder from ISO/IEC 13818-4:2004. Available at: https://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/verifier/mpeg2decode_960109.tar.gz, accessed 02.11.2022.

7. XLS. Available at: https://github.com/google/xls, accessed 02.11.2022.

8. Bluespec Compiler. Available at: https://github.com/B-Lang-org/bsc, accessed 02.11.2022.

9. IDCT algorithm implementations. Available at: https://github.com/ispras/hls-idct, accessed 02.11.2022.

10. de Dinechin F., Pasca B. Designing custom arithmetic data paths with FloPoCo. IEEE Design & Test of Computers, vol. 28, issue 4, 2011, pp. 18-27.

11. Chisel. Available at: https://github.com/chipsalliance/chisel3, accessed 02.11.2022.

12. MyHDL. Available at: https://www.myhdl.org, accessed 02.11.2022.

13. Bellows P., Hutchings B. JHDL-an HDL for reconfigurable systems. In Proc. of the IEEE Symposium on FPGAs for Custom Computing Machines, 1998, pp. 175-184.

14. Bluespec SystemVerilog Reference Guide, Bluespec, Inc., 2017, 421 p.

15. Berry G., Gonthier G. The ESTEREL synchronous programming language: design, semantics, implementation. Science of Computer Programming, vol. 19, issue 2, 1992, pp. 87-152.

16. Goldstein S., Budiu M. Fast compilation for pipelined reconfigurable fabrics. In Proc. of the ACM/SIGDA Seventh International Symposium on Field Programmable Gate Arrays, 1999, pp. 195-205.

17. Bambu. Available at: https://github.com/ferrandi/PandA-bambu, accessed 02.11.2022.

18. LegUp. Available at: http://legup.eecg.utoronto.ca, accessed 02.11.2022,

19. SmartHLS Compiler. Available at: https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/smarthls-compiler, accessed 02.11.2022.

20. Vivado Design Suite User Guide Implementation. UG904 (v2021.1), August 30, 2021. Available at: https://www.xilinx.com/content/dam/xilinx/support/documents/sw_manuals/xilinx2021_1/ug904-vivado-implementation.pdf, accessed 02.11.2022.

21. Vitis High-Level Synthesis User Guide. UG1399 (v2021.2), December 15, 2021. Available at: https://www.xilinx.com/content/dam/xilinx/support/documents/sw_manuals/xilinx2021_2/ug1399-vitis-hls.pdf, accessed 02.11.2022.

22. Intel FPGA SDK for OpenCL. Available at: https://www.intel.com/content/www/us/en/software/programmable/sdk-for-opencl/overview.html, accessed 02.11.2022.

23. Intel oneAPI. Available at: https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html, accessed 02.11.2022.

24. MaxCompiler. Available at: https://www.maxeler.com/products/software/maxcompiler, accessed 02.11.2022.

25. HDL Coder. Available at: https://www.mathworks.com/products/hdl-coder.html, accessed 02.11.2022.

26. Vitis AI. Available at: https://www.xilinx.com/products/design-tools/vitis/vitis-ai.html, accessed 02.11.2022.

27. Kalms L., Podlubne A., Göhringer D. HiFlipVX: an Open Source High-Level Synthesis FPGA Library for Image Processing. Lecture Notes in Computer Science, vol. 11444, 2019, pp. 149-164.

28. Meeus W., Van Beeck K. et al. An overview of today’s high-level synthesis tools. Design Automation for Embedded Systems, vol. 16, 2012, pp. 31-51.

29. Daoud L., Zydek D., Selvaraj H. A survey of high level synthesis languages, tools, and compilers for reconfigurable high performance computing. Advances in Intelligent Systems and Computing, vol. 240, 2014, pp. 483-492.

30. Nane R., Sima V.-M. et al. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 35, issue 10, 2016, pp. 1591-1604.

31. Hara Y., Tomiyama H. et al. CHStone: A benchmark program suite for practical C-based high-level synthesis. In Proc. of the IEEE International Symposium on Circuits and Systems (ISCAS), 2008, pp. 1192–1195.

32. Chen W.H., Smith C.H., Fralick S.C. A fast computational algorithm for the discrete cosine transform. IEEE Transactions on Communications, vol. 25, issue 9, 1977, pp. 1004-1009.

33. Wang Z. Fast algorithm for the discrete W transform and for the discrete Fourier transform. IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 32, issue 4, 1984, pp. 803-816.

34. Information technology – Generic coding of moving pictures and associated audio information – Part 4: Conformance testing, ISO/IEC 13818-4:2004, December 2004.

35. AMBA 4 AXI4-Stream Protocol Specification. ARM, Cambridge, UK, ARM IHI 0051A (ID030610), March 03, 2010. Available at: https://developer.arm.com/documentation/ihi0051/a/, accessed 02.11.2022.

36. Vivado Design Suite User Guide: Model-Based DSP. Design Using System Generator. UG897 (v2020.2), November 18, 2020. Available at: https://www.xilinx.com/content/dam/xilinx/support/documents/sw_manuals/xilinx2020_2/ug897-vivado-sysgen-user.pdf, accessed 02.11.2022.

37. IEEE Standard for Verilog Hardware Description Language, IEEE Std 1364-2005, April 7, 2006, 509 p.

38. FIRRTL. Available at: https://github.com/chipsalliance/firrtl, accessed 02.11.2022.

39. DSLX Reference. Available at: https://google.github.io/xls/dslx_reference, accessed 02.11.2022.

40. Multiscale Dataflow Programming. Maxeler Technologies, London, UK, Version 2021.1, May 14, 2021.

41. Information technology – Programming languages – C, ISO/IEC 9899:2018, June 2018.


Рецензия

Для цитирования:


КАМКИН А.С., ЧУПИЛКО М.М., ЛЕБЕДЕВ М.С., СМОЛОВ С.А., ГАЙДАДЖИЕВ Г. Сравнение инструментов высокоуровневого синтеза и конструирования цифровой аппаратуры. Труды Института системного программирования РАН. 2022;34(5):7-22. https://doi.org/10.15514/ISPRAS-2022-34(5)-1

For citation:


KAMKIN A.S., CHUPILKO M.M., LEBEDEV M.S., SMOLOV S.A., GAYDADJIEV G. Comparison of High-Level Synthesis and Hardware Construction Tools. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2022;34(5):7-22. (In Russ.) https://doi.org/10.15514/ISPRAS-2022-34(5)-1



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)