Skip to main content

The CARM Tool

Cache-Aware Roofline Model (CARM) toolkit - benchmark, visualize and profile Intel, AMD, ARM, RISC-V CPUs and NVIDIA, AMD GPUs.

The package provides:

  • automatic benchmarking for supported ISAs
  • arithmetic, memory, and roofline benchmark modes
  • optional web GUI for interactive result visualization

Documentation

You can find the full documentation at https://champ-hub.github.io/carm-roofline.

Installation

Install from PyPI:

# command-line interface only:
pip install carm-roofline
# with GUI extras:
pip install carm-roofline[gui]
# with all extras (GUI + development tools):
pip install carm-roofline[all]

To avoid conflicts with other packages, we recommend installing in a virtual environment:

python -m venv carm-env
source carm-env/bin/activate
pip install carm-roofline[all]

If cloning the repository directly (e.g. for development or access to example applications), use --recurse-submodules to also fetch the examples:

git clone --recurse-submodules https://github.com/champ-hub/carm-roofline

Requirements

  • Python 3.9+
  • C compiler (e.g. gcc, clang)
  • Optional: PAPI headers and binaries for profiling

Command-Line Interface

The installed command is:

carm

Available subcommands:

  • benchmark - run benchmark suites
  • gui - launch the results dashboard
  • profile - profile an application with PAPI or perf

Show help:

carm --help
carm benchmark --help
carm gui --help
carm profile --help

Basic Usage

Run a default benchmark (roofline mode with auto-detected settings):

carm benchmark

Other usage examples:

# Short roofline benchmark (1 second per micro-bench)
carm benchmark --test roofline --test-time 1
# Arithmetic-only
carm benchmark --test arithmetic --instruction add mul fma --data-type f32
# Memory-only
carm benchmark --test memory --mem-target L2 --ld-st-ratio 2:1
# Dry run (generate benchmark code, skip compile/execute):
carm benchmark --dry-run --test arithmetic --test-time 1 --verbose 4

Output and Results

By default, results are written to the user data directory (via platformdirs). On linux, this is typically ~/.local/share/carm/, on Windows, %APPDATA%\carm\, and on MacOS, ~/Library/Application Support/carm/.

Control output directory and format(s):

carm benchmark --output-dir ./carm_results --output-fmt table json csv plot

Use --name to label result files:

carm benchmark --name my_machine

GUI Mode

Launch the dashboard (requires GUI extras):

carm gui

Custom results location and port:

carm gui --results-dir ./carm_results --gui-port 8050

Paraver traces can be analyzed on the roofline too:

carm gui --paraver-trace trace.prv

See the documentation for details.

Publications and Citation

If you use the CARM and the CARM Tool in papers or reports, please cite:

J. Morgado, L. Sousa, A. Ilic. "CARM Tool: Cache-Aware Roofline Model Automatic Benchmarking and Application Analysis", IEEE International Symposium on Workload Characterization (IISWC), Vancouver, British Columbia, Canada, 2024.

A. Ilic, F. Pratas and L. Sousa, "Cache-aware Roofline model: Upgrading the loft," IEEE Computer Architecture Letters, vol. 13, no. 1, pp. 21-24, Jan.-June 2014. doi:10.1109/L-CA.2013.6.

D. Marques, A. Ilic, Z. A. Matveev, and L. Sousa, "Application-driven cache-aware roofline model," Future Generation Computer Systems, vol. 107, pp. 257-273, 2020. doi:10.1016/j.future.2020.01.044.

Metadata

Release files for carm-roofline 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for carm-roofline 1.3.0
File Size Uploaded
carm_roofline-1.3.0.tar.gz 329.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for carm-roofline 1.3.0
File Interpreter ABI Platform
carm_roofline-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 645.9 kB

Release files / carm_roofline-1.3.0.tar.gz

Download URL carm_roofline-1.3.0.tar.gz
Size 329.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e6296ca619b2df3c1b90766611b78e72182259a2c458611fb7a89cf9472fac92
BLAKE2b-256 checksum
How to use checksums
3a8ac16d22386181de4fb73608837dba30c6c6145337213250898c3dbb550f65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release files / carm_roofline-1.3.0-py3-none-any.whl

Download URL carm_roofline-1.3.0-py3-none-any.whl
Size 316.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a81d194aea7b3cecd29ccfacd17173c17c151c07a0042a18847521b402840f7
BLAKE2b-256 checksum
How to use checksums
92a84fa0a8a300f1fb0a32d6efae4ecabce52a54ea2afc7d2ab888d9ece0c37d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page