Modern High-Level Synthesis for
Complex Data Science Applications
ISC
2023 Tutorial - Hall Y1 - 2nd
Floor
Sunday, May 21, 2023 | 2:00 PM to 6:00 PM (CEST)
Giovanni Gozzi (Politecnico di Milano), Nicolas Bohm Agostini (Northeastern University and PNNL),
Fabrizio Ferrandi (Politecnico di Milano),
Antonino Tumeo (PNNL)
Abstract
Field Programmable Gate Arrays (FPGAs)
have become one of the key accelerators for data analytics and machine learning
in the data center, and they are seeing increased adoption in heterogeneous
high-performance computing systems for com-plex workflows that couple
scientific simulation with data science. FPGAs have traditionally been
programmed with hard-ware description languages, requiring significant
engineering efforts and long development times. Today, the availability of new
high-level synthesis (HLS) tools to generate accelerators starting from
high-level specifications provides easier access to FPGAs and preserves
programmer productivity. However, the conventional HLS flow typically starts
from languages such as C, C++, or OpenCL, heavily annotated to provide
information for 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, 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
frameworks in Python, and Bambu, the most advanced open-source HLS tool
available, able to generate optimized accelerators for data-intensive kernels.
Schedule
| 
   2:00 – 2:30pm  | 
  
   Antonino Tumeo  | 
  
   Agile Hardware Design for Complex Data Science Applications: Opportunities and Challenges.  | 
 
| 
   2:30 – 3:15pm  | 
  
   Fabrizio Ferrandi  | 
  
   Bambu: An Open-Source Research Framework for the High-Level Synthesis of Complex Applications.  | 
 
| 
   3:15 - 4:00pm  | 
  
   Giovanni Gozzi  | 
  |
| 
   4:00 - 4:30pm  | 
  
   | 
  
   Coffee Break  | 
 
| 
   4:30 – 5:00pm  | 
  
   Nicolas Bohm Agostini, Antonino Tumeo  | 
  
   SODA-OPT: Enabling System-Level Design in MLIR for High-Level Synthesis and Beyond  | 
 
| 
   5:00 - 5:30pm  | 
  
   Nicolas Bohm Agostini, Antonino Tumeo  | 
  |
| 
   5:30 - 6:00pm  | 
  
   Antonino Tumeo  | 
  
   Svelto: High-Level Synthesis of Multi-Threaded Accelerators for Graph Analytics  | 
 
The time zone for all times mentioned at the ISC is CEST (GMT+2).
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://gitlab.pnnl.gov/sodalite/soda-opt
Tutorial setup
✔    Have a
computer with access to internet:
o  
We will use a Jupiter Notebooks hosted on Google COLAB
▪      
Notebook and material for Bambu: https://github.com/ferrandi/PandA-bambu/tree/feature/tutorial_isc23/documentation/tutorial_isc_2023
o  
We will use Docker and a Jupiter Notebook:
▪       Notebook and
material for SODA-OPT: https://gitlab.pnnl.gov/sodalite/soda-opt/-/blob/main/docs/tutorials/isc2023