These models have been tested on Ubuntu 20.04, 22.04, and RHEL 8.1.
- Single-node experiments: at least one NVIDIA GPU is required.
- Multi-node experiments: a cluster with NVIDIA GPUs is required, equipped with the provided NVGPUFREQ SLURM plugin.
- DPC++ (Intel/LLVM) 2022-09
- Install using the Getting Started Guide
- Clang and LLVM 15
- Install using the LLVM automatic installation script
- The
opt-15tool must be available in the system PATH
- CUDA Toolkit (tested with CUDA 11.8)
- Python 3
- Install with
sudo apt install python3 - Required packages:
scikit-learn>=0.24,pandas,numpy,matplotlib,paretoset- Install with
pip install "scikit-learn>=0.24" pandas numpy matplotlib paretoset
- Install with
- Install with
- cmake 3.17 or later
- Install with
sudo apt install cmake - Alternatively, download the latest stable release
- Check that cmake version is >= 3.17 using
cmake --version
- Install with
Required for launching the benchmarks on a cluster:
- NVGPUFREQ SLURM plugin
- Follow the instruction in the readme file of the repository
This repository is divided in four directories:
passes, it contains the source code of the compiler passes used to extract the code featurestraining-dataset, it contains all the scripts required to generate the data on which the models are trainedmodeling, it contains the modeling training script that can also be used to predict frequency values for new samples
First, the training dataset must be built.
Instructions are in the training-dataset/ folder.
There are two scripts that must be used in the workflow, and reside in the root directory of the repository.
The extract_features.sh script utilizes the LLVM pass in the passes folder to extract features from a target application.
- The directory of the source code can be specified through the
--dircommand-line argument - Header files needed for the pass can be included through the
--includecommand-line argument
Finally, the models can be used to predict the frequencies for each target.
The predict.sh script contained in the modeling/ folder must be launched to do so. the predicted frequencies will be in the modeling/predictions/ folder.