27th International Conference on Field-Programmable Logic and Applications

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

Track: Tutorials

Organizers
- Christian Pilato, Università della Svizzera italiana (USI)
- Marco Lattuada, Politecnico di Milano
- Pietro Fezzardi, Politecnico di Milano
- Fabrizio Ferrandi, Politecnico di Milano

Material
- Morning lectures

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

Abstract
Hardware accelerators are becoming a key element in modern computing architectures to deliver energy-efficient high performance. However, designing these components is not trivial, especially when the original specification contains complex data structures and memory-related operations. To tackle this design complexity, designers often rely on high-level synthesis (HLS) to automatically translate high-level specifications into a circuit description ready for synthesis. HLS tools once required thorough understanding of the hardware design, and extensive code rewriting to optimize the generated micro-architecture. Thanks to their evolution, HLS is now suitable to be adopted by software designers.

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.