This repo should be used by any programmer interested by tunning or monitoring the performance of his applications. The repo is composed of several tools :
- Benchmarks
- Kernel Generator : used to determine what are the different frequency used by your processor during different scenario (AVX1, AVX2, Turbo ON/OFF...)
- DML_MEM : a benchmark used to measure the performance of the memory subsystem by accessing memory with stride access
- Benchmark Multiply : Matrix multiplication benchmark implemented with several optimizations: blocking, OpenMP, GPU Offloading...
- Profiling tools
- YAMB : a tool used to monitor the memory bus traffic.
- Oprofile++ : a tool to find and extract hot spots from an application
- Other tools
- Fast Plot : small python utility for plotting data from a text file
Each tool can be compiled separately and have its own settings. Each directory contains the corresponding readme file.
Each tool/benchmark can be compiled separately. You can choose which one to compile by modifying the Cmake configuration file in src/CMakeLists.txt. For example, to only compile the Kernel Generator, you can use the following configuration:
add_subdirectory (benchmark_kernel_generator)
#add_subdirectory (benchmark_dml_mem)
#add_subdirectory (benchmark_multiply)
#add_subdirectory (tool_yamb)
#add_subdirectory(tool_oprofile)
Here is the simplest way to download and install our tools:
git clone git@github.com:PourroyJean/performance_modelisation.git performance_modelisation
cd performance_modelisation
mkdir build
cd build
vi ../src/CMakeLists.txt #to choose which tool to compile
cmake ..
make
- CMAKE - An open-source, cross-platform family of tools designed to build, test and package software
We also provide :
- KeKKak: simple kernels is developped to have a fair comparison of microarchitectures on the Keccak algorithm
- AMX: two AMX benchmarks with INT8 and BF16 implementations
- Jean Pourroy - PHD - HPE
- Patrick Demichel - HPE
This project is licensed under the MIT License - see the LICENSE.md file for details