Skip to content

Commit 2a2ab6f

Browse files
lmonetavvolkl
andauthored
Add ML4EP project description and new proposals from hls4ml (#1708)
* Add ML4EP project description and new proposals from hls4ml * update metadata --------- Co-authored-by: Valentin Volkl <[email protected]>
1 parent 56eda8d commit 2a2ab6f

File tree

6 files changed

+118
-3
lines changed

6 files changed

+118
-3
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
project: ML4EP
3+
layout: default
4+
logo:
5+
description: |
6+
ML4EP is a project of the CERN [SFT group](https://ep-dep-sft.web.cern.ch) focused on developing common machine learning (ML) software tools to support HEP experiments. The current ongoing activities are:
7+
- Designing generic generative ML models for fast simulation of calorimeter showers
8+
- Developing ML software for efficient inference in C++, such as [SOFIE](https://root.cern/manual/tmva/#sofie) and creating interfaces between external provided ML software and HEP software like [ROOT](https://root.cern)
9+
- Building tools for ML inferfence in FPGA like [hls4ml](https://fastmachinelearning.org/hls4ml/)
10+
- Developing common libraries for model compression and quantization, facilitating optimized ML workflow and porting of ML HEP applications in a real time environment.
11+
summary: |
12+
ML4EP is a project of the CERN [SFT group](https://ep-dep-sft.web.cern.ch) focused on developing common machine learning (ML) software tools to support HEP experiments.
13+
---
14+
15+
{% include gsoc_project.ext %}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Integrating Support for Google XLS in HLS4ML
3+
layout: gsoc_proposal
4+
project: ML4EP
5+
year: 2025
6+
organization: CERN
7+
difficulty: medium/high
8+
duration: 350
9+
mentor_avail: Flexible
10+
project_mentors:
11+
12+
organization: CERN
13+
first_name: Vladimir
14+
last_name: Loncar
15+
is_preferred_contact: yes
16+
17+
first_name: Dimitrios
18+
last_name: Danopoulos
19+
organization: CERN
20+
---
21+
22+
# Description
23+
24+
Google XLS (Accelerated Hardware Synthesis) is an advanced open-source framework for high-level hardware design, offering flexible and efficient synthesis for FPGA and ASIC applications. By integrating XLS into HLS4ML, a framework for translating machine learning models into FPGA-friendly code, we can leverage XLS’s optimizing compiler and domain-specific language to improve resource efficiency, performance, and portability. This integration will enable seamless generation of highly optimized hardware implementations for ML models while maintaining the ease of use that HLS4ML provides.
25+
26+
HLS4ML currently supports traditional HLS tools like Vivado HLS and Intel HLS, but adding XLS can bring further benefits such as better compilation times, improved hardware efficiency, and wider vendor compatibility. This project will focus on developing an interface between HLS4ML and XLS, allowing ML models to be translated into XLS IR and synthesized efficiently.
27+
28+
# Task Ideas
29+
30+
* Develop a backend in HLS4ML that translates neural network layers into XLS Intermediate Representation (IR).
31+
* Implement the key ML operations (e.g., matrix multiplications, activations, and pooling) via XLS's DSLX language and map them to HLS4ML operations.
32+
* Benchmark and compare performance, resource utilization, and synthesis results against existing HLS4ML backends.
33+
* Extend HLS4ML’s configuration options to allow selection of XLS as a backend, ensuring ease of integration.
34+
35+
# Expected Results
36+
37+
* A prototype of a backend in HLS4ML supporting XLS-based synthesis.
38+
* Conversion scripts to map ML operations to XLS IR.
39+
* Performance evaluation of XLS and existing HLS backends.
40+
* Documentation and tutorials for using XLS with HLS4ML.
41+
42+
## Requirements
43+
* Proficiency in Python and C++.
44+
* Knowledge of hardware and compiler design.
45+
* Basic familiarity with neural networks.
46+
* Familiarity with version control systems like Git/GitHub.
47+
48+
49+
## Links
50+
* [hls4ml documentation](https://fastmachinelearning.org/hls4ml/)
51+
* [hls4ml Repository](https://github.com/fastmachinelearning/hls4ml)
52+
* [Google XLS documentation](https://google.github.io/xls/)
53+
* [Google XLS repository](https://github.com/google/xls)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
title: Optimizing Model Splitting in hls4ml for Efficient Multi-Graph Inference
3+
layout: gsoc_proposal
4+
project: ML4EP
5+
year: 2025
6+
organization: CERN
7+
difficulty: medium
8+
duration: 350
9+
mentor_avail: Flexible
10+
project_mentors:
11+
12+
organization: CERN
13+
first_name: Vladimir
14+
last_name: Loncar
15+
is_preferred_contact: yes
16+
17+
first_name: Dimitrios
18+
last_name: Danopoulos
19+
organization: CERN
20+
---
21+
22+
# Description
23+
hls4ml is an open-source tool that enables the deployment of machine learning (ML) models on FPGAs using High-Level Synthesis (HLS). It automatically converts pre-trained models from popular deep learning frameworks (e.g., Keras, PyTorch, and ONNX) into optimized firmware for FPGA-based inference.
24+
25+
Traditionally, the entire ML model is synthesized as a monolithic graph, which can lead to long synthesis times and complicated debugging, especially for large model topologies. Splitting the model graph at specified layers into independent subgraphs allows for parallel synthesis and step-wise optimization. However, finding the 'optimal' splitting points and optimizing FIFO buffers in between the subgraphs remains a challenge, especially when dealing with dynamic streaming architectures.
26+
27+
This project aims to investigate optimal splitting strategies for complex ML models in hls4ml, focusing on efficient FIFO depth optimization across multi-graph designs. The goal is to develop methodologies that can be integrated into hls4ml to enable automated and optimal graph splitting for improved performance.
28+
29+
## Task ideas
30+
The contributor will start by familiarizing themselves with hls4ml and building ML models using multi-graph designs. They will implement profiling techniques (e.g., VCD logging) to measure FIFO occupancy and backpressure in order to develop a FIFO optimization strategy for multi-graph designs. They will also investigate multi-objective optimization algorithms to determine optimal splitting points based on subgraph resource usage or dataflow patterns. Finally, they will integrate these methodologies with hls4ml and run benchmarks to validate improvements in latency, resource utilization, etc.
31+
32+
## Expected results and milestones
33+
* **Familiarization with hls4ml**: Understand the hls4ml workflow, including synthesis, and simulation.
34+
* **Research and Evaluation**: Explore FIFO profiling and optimization strategies along with algorithms to partition the model graph given specific optimization objectives.
35+
* **Validation**: Benchmark against monolithic implementations and compare differences in latency and resource utilization.
36+
37+
## Requirements
38+
* Proficiency with computer architecture, FPGA design and simulation tools (e.g., Vivado)
39+
* Experience with Python
40+
* Understanding of ML concepts is beneficial.
41+
* Familiarity with version control systems like Git/GitHub.
42+
43+
44+
## Links
45+
* [hls4ml documentation](https://fastmachinelearning.org/hls4ml/)
46+
* [hls4ml Repository](https://github.com/fastmachinelearning/hls4ml)
47+
* [Vivado Design Implementation](https://docs.amd.com/r/en-US/ug949-vivado-design-methodology/Design-Implementation)

_gsocproposals/2025/proposal_TMVA-SOFIE-GPU.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: TMVA SOFIE - GPU Support for Machine Learning Inference
33
layout: gsoc_proposal
4-
project: ROOT
4+
project: ML4EP
55
year: 2025
66
organization: CERN
77
difficulty: medium

_gsocproposals/2025/proposal_TMVA-SOFIE-HLS4ML.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: TMVA SOFIE - HLS4ML Integration for Machine Learning Inference
33
layout: gsoc_proposal
4-
project: ROOT
4+
project: ML4EP
55
year: 2025
66
organization: CERN
77
difficulty: medium

_gsocproposals/2025/proposal_TMVA-SOFIE-TF_JAX.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: TMVA SOFIE - Enhancing Keras Parser and JAX/FLAX Integration
33
layout: gsoc_proposal
4-
project: ROOT
4+
project: ML4EP
55
year: 2025
66
organization: CERN
77
difficulty: medium

0 commit comments

Comments
 (0)