Open-Source Software et Matériel Open-SourcE

Workshop organisé en marge de Compas 2024 : https://2024.compas-conference.fr/

Date : 2 juillet 2024

Lieu : Nantes

L’objectif du workshop est de mettre en évidence les interactions réciproques entre le matériel et le logiciel, à travers des outils et des architectures matérielles open-source. L’idée est de mixer des présentations avec une ou plusieurs sessions de manipulation.

Inscription par le site de la conférence. Participation possible à la journée seulement, mais le repas du midi ne pourra pas être pris en charge.

Programme :

– 9h30-10h00 : accueil café
10h00-12h00 : présentations
– 10h00-10h30 : Silviu-Ioan Filip, Inria, MPTorch: a PyTorch-based framework for simulating custom precision DNN training
– 10h30-11h00 : Bruno Bodin, Yale-NUS, Singapour, Hardware Synthesis of a Functional Programming Language with Kiter
– 11h00-11h30 : Satyajit Das, Indian Institute of Technology (IIT) Palakkad, OpenPiton: A Comprehensive Open Source Framework for Manycore Research
– 11h30-12h00 : Jonathan Saussereau, IMS, AsteRISC : Architectures de processeur RISC-V flexibles et outils pour l’exploration de l’espace de conception
– 12h00-14h00 : déjeuner
14h00-17h30 : hands-on session

Hands-on session

Bring our own laptop, with virtual machine (Virtual Box installed). Contact the organisers (kevin.martin@univ-ubs.fr) if you have any question.
Technical settings:

Abstracts

MPTorch: a PyTorch-based framework for simulating custom precision DNN training

Résumé: In this talk I will present MPTorch, a wrapper framework built atop PyTorch that is designed to simulate and explore the use of custom/mixed precision arithmetic in PyTorch, especially for DNN training. It reimplements the underlying computations of commonly used layers for DNNs (e.g. matrix multiplication and 2D convolutions) using user-specified number formats for each operation (e.g. addition, multiplication).

https://github.com/mptorch/mptorch

Hardware Synthesis of a Functional Programming Language with Kiter

Kiter (https://github.com/bbodin/kiter) is a command-line tool designed for performing the analysis of SDF/CSDF dataflow models, including liveness, throughput, buffer sizing, and buffer-throughput exploration.  In the landscape of open-source dataflow analysis tools, including well-regarded solutions like SDF3 (https://www.es.ele.tue.nl/sdf3/) and PREESM (https://preesm.github.io/), Kiter makes significant contributions by incorporating advanced analytical algorithms and supporting more complex model features such as initial phases, thresholds, and bufferless channels. Recently, Kiter has expanded its capabilities to include VHDL code generation for Xilinx FPGAs. This new feature leverages an iterative algorithm based on K-periodic scheduling, allowing for a precise and flexible computation of VHDL block design schedules. This method provides a transparent synthesis methodology, offering an alternative to high-level synthesis approaches used by commercial tools like Vitis. To evaluate this functionality, we built an extension for the Audio Processing language Faust (https://faust.grame.fr/), enabling the generation of SDF3 XML files compatible with Kiter. Our experiments show that Kiter achieves lower latency compared to Vitis for various synthesizable use-cases, and demonstrate its potential in improving FPGA design workflows. This presentation will explore Kiter’s dataflow analysis capabilities, its VHDL code generation process, and the results of our performance evaluation using Faust use-cases.

https://github.com/bbodin/kiter

OpenPiton: A Comprehensive Open Source Framework for Manycore Research

The industry is advancing towards larger and more intricate manycore processors, but academic projects often struggle to replicate this scale. To address this, Openpiton offers the community an open architecture framework for simulation, chip design, and software exploration. In this talk, I will introduce OpenPiton, the world’s first open source, general-purpose, multithreaded manycore processor and framework. The framework offers extensive configurability, supporting FPGA emulation and full-stack multiuser Debian Linux, and is designed to scale to large core fabrics for evaluating operating system, compiler, and software scalability. Its industrial-grade codebase includes scripts for building new chips, making it ideal for CAD research. Validated with a 25-core chip prototype named Piton and supported by a comprehensive validation suite, OpenPiton is widely used in research, education, and industry.

https://github.com/PrincetonUniversity/openpiton

AsteRISC: Architectures de processeur RISC-V flexibles et outils pour l’exploration de l’espace de conception

Il existe une grande variété de cœurs RISC-V open source. Cependant, il reste difficile de trouver une implémentation de processeur parfaitement adaptée à toutes les contraintes d’une application spécifique. Certains travaux cherchent à comparer différentes implémentations RISC-V. Toutefois, les caractéristiques des cœurs telles que les performances et l’allocation des ressources ne sont pas absolues. En effet, elles sont influencées par de nombreux paramètres comme la technologie ciblée, la taille des mémoires choisies et les extensions implémentées. Ainsi, certaines architectures sont plus adaptées à certains cadres applicatifs que d’autres. Les processeurs flexibles apportent une solution à ce défi, en offrant la possibilité d’adapter la micro-architecture aux contraintes applicatives. Il existe dans l’état de l’art plusieurs approches pour les architectures flexibles. Certaines sont par exemple décrites avec la synthèse de haut niveau (HLS). Une autre option est le langage de conception matériel Chisel. Ce dernier apporte de l’abstraction tout en restant proche du matériel, comme le démontre le Rocket Chip Generator. Il est également possible d’introduire la flexibilité dans les descriptions au niveau RTL, par exemple en proposant des variations de l’ALU comme pour le PicoRV32. Dans les travaux présentés ici, une autre approche pour l’exploration de l’espace de conception est proposée. Il s’agit de proposer diverses configurations pour le chemin de données, grâce à des registres optionnels. De cette façon, le processeur AsteRISC peut être adapté à différentes cibles technologiques et contraintes architecturales. Cela permet de choisir la configuration la plus appropriée pour un scénario donné. En plus d’AsteRISC, une part importante de la contribution est Asterism: une toolbox open-source d’exploration de l’espace de conception. Cette toolbox permet de synthétiser de manière automatisée différentes configurations d’une architecture numérique pour divers outils, tels que Vivado pour FPGA ou Design Compiler pour ASIC. Les résultats de synthèse sont ensuite condensés dans un format standard indépendant de l’outil de synthèse logique. Enfin, un outil interactif permet de visualiser sous forme de courbes les caractéristiques des différentes architectures et de faciliter leur comparaison. Asterism est particulièrement utile pour trouver la configuration d’AsteRISC la plus adaptée à un cadre applicatif donné.

https://github.com/jsaussereau/Asterism

Compte rendu

Comité d’organisation :

  • Mickaël Dardaillon, IETR
  • Thibaut Marty, IETR
  • Olivier Weppe, IETR
  • Kevin Martin, Lab-STICC

https://open-source-eda-letter.eu/