ICFPT 2017 tutorial

BAMBU: An open-source framework for research in high-level synthesis

Date and time: Thursday 14 December, 9.00 pm – 5.30 pm
Presenters: Christian Pilato, Università della Svizzera italiana (USI); Fabrizio Ferrandi, Politecnico di Milano

This full-day tutorial presents BAMBU, an open-source framework for research in high-level synthesis. It leverages the GCC compiler to automatically generate hardware accelerators directly from C language.

BAMBU is modular and extensible with custom optimization and transformation passes. It features a novel memory architecture that supports a wide range of C constructs, minimizing the need for code rewriting.

In this tutorial, hardware designers will understand how to create and integrate efficient accelerators, while software designers will learn how to accelerate their applications with limited effort. We will thus present an overview of the high-level synthesis process, the tool and how it can be used to generate accelerators for several platforms (from embedded to high-performance architectures).

We will also present how to simulate and validate the accelerators generated with BAMBU.

Virtual machine

You can download a VirtualBox virtual machine with a pre-configured version of Bambu. The machine requires about 8GB of free space on your disk. (Username: ubuntu — Password: password).

The two files are shared through OneDrive facility and does not requires anything to be installed beside a recent version of VirtualBox software.
VirtualBox virtual machine with a pre-configured version of Bambu running on Ubuntu-desktop 16.04 LTS 32bits – 1.61GB
VirtualBox virtual machine with a pre-configured version of Bambu running on Ubuntu-desktop 16.04 LTS 64bits – 1.59GB

Tutorial material

The slide of the tutorial are the following:

  • Introduction to bambu – pdf
  • Target Customization and Tool Integration – pdf
  • Compiler Based Optimizations, Tuning and Customization of Generated Accelerators – pdf
  • Synthesis and optimization of memory accesses – pdf
  • Debugging and Automated Bug Detection for Hardware Generated with bambu – pdf

Finally, the examples can be retrieved from the PandA-bambu github repository in the FPT17_tutorial branch under the directory documentation/tutorial_fpt_2017 (link)

Organizers and Short Bios

Christian Pilato, Postdoctoral Researcher, University of Lugano, Switzerland
Christian Pilato received the Laurea degree in computer engineering and the Ph.D. degree in information technology from the Politecnico di Milano, Milan, Italy, in 2007 and 2011, respectively. From 2013 to 2016, he was a Post-Doctoral Research Scientist with the Department of Computer Science, Columbia University, New York, NY, USA. He is currently a Post-Doctoral Researcher at the ALaRi institute of Università della Svizzera italiana (USI), Lugano, Switzerland. He has been visiting researcher at NanGate, Chalmers University of Technology, and Delft University of Technology.
His current research interests include high-level synthesis, reconfigurable systems and system-on-chip architectures, with emphasis on memory aspects, publishing more than 50 papers on these topics. He has actively participated to several projects sponsored by European Union, a research center supported by Semiconductor Research Corporation (SRC), and DARPA. Dr. Pilato served as the Program Chair of the Embedded and Ubiquitous Conference, in 2014. He is currently involved in the program committees of many conferences on embedded systems, CAD, and reconfigurable architectures, such as FPL, DATE, and CASES. He is a Member of the Association for Computing Machinery.

Fabrizio Ferrandi, Associate Professor, Politecnico di Milano, Italy
Fabrizio Ferrandi received his Laurea (cum laude) in Electronic Engineering in 1992 and the Ph.D. degree in Information and Automation Engineering (Computer Engineering) from the Politecnico di Milano, Italy, in 1997. He joined the faculty of Politecnico di Milano in 1999 as “Ricercatore” and later in 2002 as Associate Professor with the Dipartimento di Elettronica, Informazione e Bioingegneria. His research interests include synthesis, verification simulation and testing of digital circuits and systems. He published more than 100 papers in international journals, conference and book chapters. Fabrizio Ferrandi is a member of the IEEE Computer Society since 1995, the Test Technology Technical Committee, and the European Design and Automation Association.

A framework for Hardware-Software Co-Design of Embedded Systems