Enabling Machine Learning on FPGA

Content of the lecture:

Future hardware systems will be characterized by the presence of many computing cores in a single device, by heterogeneous architectures built to optimize power and “silicon” consumption as much as possible, and by re-configurable hardware technologies. Workloads are also changing, where once we had big applications running a powerful processors, now we deal with models like neural networks and computational graphs, where smaller computational units take part in solving the same problem. In these scenario a key point in building computing systems is the find efficient ways to make the software requirements match the hardware capabilities.
The BondMachine (BM) is an innovative prototype software ecosystem aimed at creating facilities where both hardware and software are co-designed, guaranteeing a full exploitation of fabric capabilities (both in terms of concurrency and heterogeneity) with the smallest possible power dissipation. The disruptive innovation of the BM is to provide a new kind of computer architecture, where hardware dynamically adapts to the specific computational problem, rather than being static and generic, as in standard CPU synthesized in silicon.
In order to exploit the dynamic nature of the BM, its main goal is to create the described heterogeneous and flexible architectures on top of re-configurable technology devices (such as FPGA). Moreover, the overall BM vision is based on the reduction of the number of hardware/software layers, which as a byproduct guarantees a simpler software development. This is precisely why the BM project has been thought as a complete re-configurable computing ecosystem, that starting from a high-level description creates both the hardware and the software that runs on it.
The BM uses Go as main language for the co-design. Its concurrency primitives are perfect to be mapped in the BM architecture and to allow writing concurrent applications on FPGA with a small overhead compared to HDL code. The BM flexibility makes it possible the implementation of any computing system, ranging from networks of small agents, like IoT (Internet of Things), to high performance devices for ML (Machine Learning) or real time data analysis, and even systems that mix all these different characteristics together. The modular nature of the BM architectures also allows the interchangeability of numeric data type
and instructions directly in hardware, permitting the easy creation of approximate and trans-precision enabled devices.

Teacher: Mirko Mariotti

Mirko Mariotti received the B.Sc degree in physics from the University of Perugia, Italy. Since 2002 his position is System Engineer at the Physics and Geology Department of the Perugia University (Italy) where he is involved in developing and maintaining the departmental ICT infrastructure and in managing and creating software for the experiments.
His interests are multidisciplinary and go from Theoretical Physics and Foundations of Mathematics to Computational Science, HPC, Evolutionary Computation and Computer Architectures.
In 2016 he created the BondMachine project, a toolkit to build reconfigurable computer architectures targeting FPGA devices, awarded at the InnovateFPGA Global contest in 2018.