Skip to content

Commit 6862da3

Browse files
volpepemallamanis
authored andcommitted
Added papers
1 parent 180b42f commit 6862da3

5 files changed

+59
-0
lines changed

Diff for: _publications/barchi2019code.markdown

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
layout: publication
3+
title: "Code Mapping in Heterogeneous Platforms Using Deep Learning and LLVM-IR"
4+
authors: Francesco Barchi, Gianvito Urgese, Enrico Macii, Andrea Acquaviva
5+
conference: DAC
6+
year: 2019
7+
additional_links:
8+
- {name: "ACM", url: "https://dl.acm.org/doi/10.1145/3316781.3317789"}
9+
- {name: "code", url: "https://gitlab.com/ecs-lab/deepllvm"}
10+
tags: ["optimization", "program analysis", "static analysis", "natural language processing"]
11+
---
12+
Modern heterogeneous platforms require compilers capable of choosing the appropriate device for the execution of program portions. This paper presents a machine learning method designed for supporting mapping decisions through the analysis of the program source code represented in LLVM assembly language (IR) for exploiting the advantages offered by this generalised and optimised representation. To evaluate our solution, we trained an LSTM neural network on OpenCL kernels compiled in LLVM-IR and processed with our tokenizer capable of filtering less-informative tokens. We tested the network that reaches an accuracy of 85% in distinguishing the best computational unit.

Diff for: _publications/barchi2020exploration.markdown

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
layout: publication
3+
title: "Exploration of Convolutional Neural Network models for source code classification"
4+
authors: Francesco Barchi, Emanuele Parisi, Gianvito Urgese, Elisa Ficarra, Andrea Acquaviva
5+
journal: Engineering Applications of Artificial Intelligence
6+
year: 2021
7+
additional_links:
8+
- {name: "ScienceDirect", url: "https://www.sciencedirect.com/science/article/pii/S0952197620303353"}
9+
- {name: "code", url: "https://gitlab.com/ecs-lab/deepllvm"}
10+
tags: ["optimization", "static analysis", "program analysis", "language model"]
11+
---
12+
The application of Artificial Intelligence is becoming common in many engineering fields. Among them, one of the newest and rapidly evolving is software generation, where AI can be used to automatically optimise the implementation of an algorithm for a given computing platform. In particular, Deep Learning technologies can be used to the decide how to allocate pieces of code to hardware platforms with multiple cores and accelerators, that are common in high performance and edge computing applications. In this work, we explore the use of Convolutional Neural Networks (CNN)s to analyse the application source code and decide the best compute unit to minimise the execution time. We demonstrate that CNN models can be successfully applied to source code classification, providing higher accuracy with consistently reduced learning time with respect to state-of-the-art methods. Moreover, we show the robustness of the method with respect to source code pre-processing, compiler options and hyper-parameters selection.

Diff for: _publications/barchi2022deep.markdown

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
layout: publication
3+
title: "Deep Learning Approaches to Source Code Analysis for Optimization of Heterogeneous Systems: Recent Results, Challenges and Opportunities"
4+
authors: Francesco Barchi, Emanuele Parisi, Andrea Bartolini, Andrea Acquaviva
5+
journal: Journal of Low Power Electronics and Applications
6+
year: 2022
7+
additional_links:
8+
- {name: "MDPI", url: "https://www.mdpi.com/2079-9268/12/3/37"}
9+
tags: ["optimization", "review"]
10+
---
11+
To cope with the increasing complexity of digital systems programming, deep learning techniques have recently been proposed to enhance software deployment by analysing source code for different purposes, ranging from performance and energy improvement to debugging and security assessment. As embedded platforms for cyber-physical systems are characterised by increasing heterogeneity and parallelism, one of the most challenging and specific problems is efficiently allocating computational kernels to available hardware resources. In this field, deep learning applied to source code can be a key enabler to face this complexity. However, due to the rapid development of such techniques, it is not easy to understand which of those are suitable and most promising for this class of systems. For this purpose, we discuss recent developments in deep learning for source code analysis, and focus on techniques for kernel mapping on heterogeneous platforms, highlighting recent results, challenges and opportunities for their applications to cyber-physical systems.

Diff for: _publications/parisi2022making.markdown

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
layout: publication
3+
title: "Making the Most of Scarce Input Data in Deep Learning-Based Source Code Classification for Heterogeneous Device Mapping"
4+
authors: Emanuele Parisi, Francesco Barchi, Andrea Bartolini, Andrea Acquaviva
5+
journal: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
6+
year: 2022
7+
additional_links:
8+
- {name: "IEEE", url: "https://ieeexplore.ieee.org/document/9544064"}
9+
- {name: "code", url: "https://gitlab.com/ecs-lab/deepllvm"}
10+
tags: ["optimization", "program analysis", "static analysis", "language model"]
11+
---
12+
Despite its relatively recent history, deep learning (DL)-based source code analysis is already a cornerstone in machine learning for compiler optimization. When applied to the classification of pieces of code to identify the best computational unit in a heterogeneous Systems-on-Chip, it can be effective in supporting decisions that a programmer has otherwise to take manually. Several techniques have been proposed exploiting different networks and input information, prominently sequence-based and graph-based representations, complemented by auxiliary information typically related to payload and device configuration. While the accuracy of DL methods strongly depends on the training and test datasets, so far no exhaustive and statistically meaningful analysis has been done on its impact on the results and on how to effectively extract the available information. This is relevant also considering the scarce availability of source code datasets that can be labeled by profiling on heterogeneous compute units. In this article, we first present such a study, which leads us to devise the contribution of code sequences and auxiliary inputs separately. Starting from this analysis, we then demonstrate that by using the normalization of auxiliary information, it is possible to improve state-of-the-art results in terms of accuracy. Finally, we propose a novel approach exploiting Siamese networks that further improve mapping accuracy by increasing the cardinality of the dataset, thus compensating for its relatively small size.

Diff for: _publications/parisi2022source.markdown

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
layout: publication
3+
title: "Source Code Classification for Energy Efficiency in Parallel Ultra Low-Power Microcontrollers"
4+
authors: Emanuele Parisi, Francesco Barchi, Andrea Bartolini, Giuseppe Tagliavini, Andrea Acquaviva
5+
conference: DATE
6+
year: 2021
7+
additional_links:
8+
- {name: "IEEE", url: "https://ieeexplore.ieee.org/document/9474085"}
9+
- {name: "ArXiV", url: "https://arxiv.org/abs/2012.06836"}
10+
tags: ["optimization"]
11+
---
12+
The analysis of source code through machine learning techniques is an increasingly explored research topic aiming at increasing smartness in the software toolchain to exploit modern architectures in the best possible way. In the case of low-power, parallel embedded architectures, this means finding the configuration, for instance in terms of the number of cores, leading to minimum energy consumption. Depending on the kernel to be executed, the energy optimal scaling configuration is not trivial. While recent work has focused on general-purpose systems to learn and predict the best execution target in terms of the execution time of a snippet of code or kernel (e.g. offload OpenCL kernel on multicore CPU or GPU), in this work we focus on static compile-time features to assess if they can be successfully used to predict the minimum energy configuration on PULP, an ultra-low-power architecture featuring an on-chip cluster of RISC-V processors. Experiments show that using machine learning models on the source code to select the best energy scaling configuration automatically is viable and has the potential to be used in the context of automatic system configuration for energy minimisation.

0 commit comments

Comments
 (0)