SODA Synthesizer

Accelerating Data Science Applications with an end-to-end Silicon Compiler

PACT 2023 Tutorial

 

Nicolas Bohm Agostini (PNNL and Northeastern University), Serena Curzel (PNNL and Politecnico di Milano),

Michele Fiorito (Politecnico di Milano), Vito Giovanni Castellana (PNNL),

Fabrizio Ferrandi (Politecnico di Milano), Antonino Tumeo (PNNL)

Abstract

Data Science applications (machine learning, graph analytics) are among the main drivers for the renewed interests in designing domain specific accelerators, both for reconfigurable devices (Field Programmable Gate Arrays) and Application-Specific Integrated Circuits (ASICs). Today, the availability of new high-level synthesis (HLS) tools to generate accelerators starting from high-level specifications provides easier access to FPGAs or ASICs and preserves programmer productivity. However, the conventional HLS flow typically starts from languages such as C, C++, or OpenCL, heavily annotated with information to guide the hardware generation, still leaving a significant gap with respect to the (Python based) data science frameworks. This tutorial will discuss HLS to accelerate data science on FPGAs or ASICs, highlighting key methodologies, trends, advantages, benefits, but also gaps that still need to be closed. The tutorial will provide a hands-on experience of the SOftware Defined Accelerators (SODA) Synthesizer, a toolchain composed of SODA-OPT, an opensource front-end and optimizer that interface with productive programming data science frame- works in Python, and Bambu, the most advanced open-source HLS tool available, able to generate optimized accelerators for data-intensive kernels.

Schedule

Morning:

9:00 - 9:45am

Antonino Tumeo

Introduction and Agile Hardware Design for Complex Data Science Applications: Opportunities and Challenges.

9:45 - 10:30am

Fabrizio Ferrandi

Bambu: An Open-Source Research Framework for the High-Level Synthesis of Complex Applications.

10:30 - 11:00am

 

Break

11:00 - 11:45am

Antonino Tumeo

SODA-OPT: Enabling System-Level Design in MLIR for High-Level Synthesis and Beyond

11:45 - 12:00pm

Tumeo, Ferrandi

Preparation for the hands-on sessions

 

Afternoon:

1:30 - 2:15pm

Antonino Tumeo

Hands-on: From DNN Models to ASIC Devices with SODA-OPT

2:15 - 3:00pm

Fabrizio Ferrandi

Hands-on: Productive High-Level Synthesis with Bambu

3:00 - 3:30pm

 

Break

3:30 - 4:30pm

Fabrizio Ferrandi

Hands-on: Compiler Based Optimizations, Tuning and Customization of Generated Accelerators

4:30 - 5:30pm

Antonino Tumeo

High-Level Synthesis of Multi-Threaded Accelerators for Graph Analytics, Additional Features, and Closing remarks

 

All times reported are CET – Central European Time (CET+1).

 

Reading list

    Papers:

o   Zhang, J.J., Agostini, N.B., Song, S., Tan, C., Limaye, A., Amatya, V., Manzano, J., Minutoli, M., Castellana, V.G., Tumeo, A. and Wei, G.Y., 2021, July. Towards Automatic and Agile AI/ML Accelerator Design with End-to-End Synthesis. In 2021 IEEE 32nd International Conference on Application-specific Systems, Architectures and Processors (ASAP) (pp. 218-225).

o   Ferrandi, F., Castellana, V.G., Curzel, S., Fezzardi, P., Fiorito, M., Lattuada, M., Minutoli, M., Pilato, C. and Tumeo, A., 2021, December. Bambu: an Open-Source Research Framework for the High-Level Synthesis of Complex Applications. In 2021 58th ACM/IEEE Design Automation Conference (DAC) (pp. 1327-1330).

o   Minutoli, M., Castellana, V.G., Saporetti, N., Devecchi, S., Lattuada, M., Fezzardi, P., Tumeo, A. and Ferrandi, F., 2021. Svelto: High-level synthesis of multi-threaded accelerators for graph analytics. IEEE Transactions on Computers.

o   Agostini, N.B., Curzel, S., Kaeli, D., and Tumeo, A., 2022, May, SODA-OPT an MLIR based flow for co-design and high-level synthesis. In 2022 Proceedings of the 19th ACM International Conference on Computing Frontiers (CF) (pp. 201–202).

o   Agostini, N.B., Curzel, S., Amatya, V., Tan, C., Minutoli, M., Castellana, V.G., Manzano, J., Kaeli, D., and Tumeo, A. 2022. An MLIR-based Compiler Flow for System-Level Design and Hardware Acceleration. In Proceedings of the 41st IEEE/ACM International Conference on Computer-Aided Design (ICCAD '22), Article 6, (pp. 1-9)

o   Agostini, N.B., Curzel, S., Zhang, J.J., Limaye, A., Tan, C., Amatya, V., Minutoli, M., Castellana, V.G., Manzano, J., Brooks, D. and Wei, G.Y., 2022, June. Bridging Python to Silicon: The SODA Toolchain. In IEEE Micro, 42(5), (pp. 78–88).

    Additional material:

o   Other Bambu publications are listed on https://panda.dei.polimi.it/?page_id=177

o   Code repositories: https://github.com/ferrandi/PandA-bambu and https://github.com/pnnl/soda-opt

Tutorial setup

    Have a computer with access to internet and a valid Google account

o   We will use two Jupiter Notebooks hosted on Google COLAB

       Notebook and material for Bambu: https://github.com/ferrandi/PandA-bambu/tree/main/documentation/tutorial_hpca_2023  

       Notebook and material for SODA-OPT: https://github.com/pnnl/soda-opt/tree/main/docs/tutorials/hpca2023