Skip to content

SiPearl/ERIS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ERIS

ERIS (short for "ERIS is a Resource Interference Suite") is a tool for performance bottleneck analysis based on the injection of "performance noise". Noise is defined as additional assembly instructions inserted into performance-critical sections of a code, with the goal to stress specific hardware bottleneck sources.

This repository contains the LLVM injection plugin at the core of the noise injection methodology.

Building

This version was confirmed to build with with versions of LLVM from 19.1.3 to 21.0.0. It is built through CMake:

mkdir build
cd build
cmake -DLLVM_DIR=[...] [OTHER OPTIONS] ..

This will print a recap of the relevant CMake variables for the build:

=== Injection plugin config : ===

CMAKE_INSTALL_PREFIX  = [...]
CMAKE_CXX_COMPILER    = [...]

LLVM_DIR           = [...]
CLANG              = [...]
CLANGXX            = [...]
LLVM_VERSION_MAJOR = [...]
LLVM_VERSION_MINOR = [...]

=================================

The LLVM_DIR variable in particular corresponds to the install path of the LLVM version against which the plugin will be linked. The variables CLANG, CLANGXX and LLVM_VERSION_[MAJOR/MINOR] are given for information only, and the code will be built using the standard CMAKE_CXX_COMPILER variable.

Then :

make
make install

which will install the plugin library in ${CMAKE_INSTALL_PREFIX}/lib.

Calling the plugin

For more details on the use of the plugin, please refer to the detailed documentation.

The plugin can be called on clang or clang++ using the following flags:

clang[++] -Xclang -load -Xclang libNoiseInjector.so -Xclang -fpass-plugin=libNoiseInjector.so

where libNoiseInjector.so is the plugin library generated by this project and accessible through your LD_LIBRARY_PATH.

Simple example uses can be found in the dedicated directory (see dedicated README). These include experiments presented in the "Noise Injection for Performance Bottleneck Analysis" paper. Artifacts (experimental data) for this paper can be found at the following DOI: 10.5281/zenodo.15598901.

About

ERIS: ERIS is a Resource Interference Suite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •