benchmark-subsetting / cere

Licence: LGPL-3.0 License
CERE: Codelet Extractor and REplayer

Programming Languages

c
50402 projects - #5 most used programming language
fortran
972 projects
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
Roff
2310 projects

Projects that are alternatives of or similar to cere

arch-packages
Arch Linux performance important packages
Stars: ✭ 27 (+0%)
Mutual labels:  optimization, llvm
Optim
OptimLib: a lightweight C++ library of numerical optimization methods for nonlinear functions
Stars: ✭ 411 (+1422.22%)
Mutual labels:  optimization, openmp
yask
YASK--Yet Another Stencil Kit: a domain-specific language and framework to create high-performance stencil code for implementing finite-difference methods and similar applications.
Stars: ✭ 81 (+200%)
Mutual labels:  optimization, openmp
Llvm
Project moved to: https://github.com/llvm/llvm-project
Stars: ✭ 4,461 (+16422.22%)
Mutual labels:  optimization, llvm
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (+214.81%)
Mutual labels:  optimization, openmp
contech
The Contech analysis framework provides the means for generating and analyzing task graphs that enable computer architects and programmers to gain a deeper understanding of parallel programs.
Stars: ✭ 43 (+59.26%)
Mutual labels:  llvm, openmp
hmg
💝 My personal Gentoo/Linux configuration backup files
Stars: ✭ 16 (-40.74%)
Mutual labels:  optimization, llvm
tbslas
A parallel, fast solver for the scalar advection-diffusion and the incompressible Navier-Stokes equations based on semi-Lagrangian/Volume-Integral method.
Stars: ✭ 21 (-22.22%)
Mutual labels:  openmp
opt einsum fx
Einsum optimization using opt_einsum and PyTorch FX graph rewriting
Stars: ✭ 13 (-51.85%)
Mutual labels:  optimization
EFDCPlus
www.eemodelingsystem.com
Stars: ✭ 9 (-66.67%)
Mutual labels:  openmp
Unreal-Development-Guides-and-Tips
High-level concept explanations, detailed tutorials, performance considerations, shortcuts and other useful content that aims to improve your Unreal Engine 4 development journey.
Stars: ✭ 118 (+337.04%)
Mutual labels:  optimization
siconos
Simulation framework for nonsmooth dynamical systems
Stars: ✭ 120 (+344.44%)
Mutual labels:  optimization
llvm-statepoint-utils
Runtime support for LLVM's GC Statepoints
Stars: ✭ 35 (+29.63%)
Mutual labels:  llvm
wxparaver
wxParaver is a trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures.
Stars: ✭ 23 (-14.81%)
Mutual labels:  openmp
NMFADMM
A sparsity aware implementation of "Alternating Direction Method of Multipliers for Non-Negative Matrix Factorization with the Beta-Divergence" (ICASSP 2014).
Stars: ✭ 39 (+44.44%)
Mutual labels:  optimization
nolimix86
LLVM-based x86 emulator with support for unlimited virtual registers, used before the register allocation pass
Stars: ✭ 19 (-29.63%)
Mutual labels:  llvm
csso-webpack-plugin
CSSO full restructuring minification files to serve your webpack bundles
Stars: ✭ 104 (+285.19%)
Mutual labels:  optimization
mlrHyperopt
Easy Hyper Parameter Optimization with mlr and mlrMBO.
Stars: ✭ 30 (+11.11%)
Mutual labels:  optimization
allgebra
Base container for developing C++ and Fortran HPC applications
Stars: ✭ 14 (-48.15%)
Mutual labels:  openmp
a-tour-of-pytorch-optimizers
A tour of different optimization algorithms in PyTorch.
Stars: ✭ 46 (+70.37%)
Mutual labels:  optimization

CERE v0.3.1

Build Status

Codelet Extractor and REplayer (CERE) is an open source framework for code isolation. CERE finds and extracts the hotspots of an application as isolated fragments of code, called codelets. Codelets can be modified, compiled, run, and measured independently from the original application. Code isolation reduces benchmarking cost and allows piecewise optimization of an application. Unlike previous approaches, CERE isolates codes at the LLVM Intermediate Representation level. Therefore CERE is language agnostic and supports many input languages such as C, C++, Fortran, and D. CERE automatically detects codelets invocation that have the same performance behavior. Then, it selects a reduced set of representative codelets and invocations, much faster to replay, which still captures accurately the original application. In addition, CERE supports recompiling and retargeting the extracted codelets. Therefore, CERE can be used for cross-architecture performance prediction or piecewise code optimization.

Installation

Please follow the instructions in INSTALL.md.

For OpenMP support please switch to OpenMP branch and follow the instructions in INSTALL.md.

Supported platforms

For now CERE only supports the Linux operating system. We have tested different versions of kernels in the 2.6 series. CERE has been tested mainly on x86_64 and Aarch64 (ARMv8 64 bits) Debian and Ubuntu distributions. It has been tested with LLVM versions ranging from 3.3 to 3.9. The OpenMP branch works with LLVM 3.9.

CERE capture and replay is performed in user mode, but requires that /proc/sys/kernel/randomize_va_space is set to 1 or 2. This is the default on most linux distribution.

CERE is an alpha release, if you experience bugs during capture and replay please report them using the issue tracker. Thanks!

Documentation

New users should start by reading CERE tutorial.

Once installation is complete, a set of man pages for cere commands is available in the doc/ directory. To check a command use man -M <cere-path>/doc <command>. For example, to read the manual of cere-configure you can type:

man -M doc/ cere configure

Bugs, Feedback and Contributions

The issue tracker is the preferred channel for bug reports, features requests and submitting pull requests.

For more general questions or discussions please use the [email protected] mailing list.

How to cite CERE ?

If you use CERE in your research, please cite the following paper:

@article{CERE,
    title = {{CERE: LLVM Based Codelet Extractor and REplayer for Piecewise
    Benchmarking and Optimization}},
    author = {de Oliveira Castro, Pablo and Akel, Chadi and Petit, Eric and Popov,
    Mihail and Jalby, William},
    journal = {ACM Transactions on Architecture and Code Optimization (TACO)},
    volume = {12},
    number = {1},
    pages = {6},
    year = {2015},
    publisher = {ACM},
    doi = {10.1145/2724717}
    }

Thanks !

Contributors

CERE contributors are listed in the THANKS file.

License and copyright

Copyright (c) 2013-2018, Universite de Versailles St-Quentin-en-Yvelines

CERE is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].