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

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.0.7

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.0.7
File Size Uploaded
carm_roofline-1.0.7.tar.gz 225.0 kB Details

Built distribution (wheel)

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

Total release size: 465.6 kB

Release files / carm_roofline-1.0.7.tar.gz

Download URL carm_roofline-1.0.7.tar.gz
Size 225.0 kB
Tags Source
SHA-256 checksum
How to use checksums
64b313a4cfb4f13f02deae250fd70d4d160bdba2a3860aa5e1bf5f195ab3c0b5
BLAKE2b-256 checksum
How to use checksums
1c7f31d53f68a256de53b73294ac38b0ee2135d9d142d363f75e42d7354cd009
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 Jul 30, 2026.

Transparency log

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

Download URL carm_roofline-1.0.7-py3-none-any.whl
Size 240.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b157ef87b6e7926a943e6b06664280adde2202ce8c3affa5aa26d1d714d9343a
BLAKE2b-256 checksum
How to use checksums
af19953a37f7d2309ce5c64ef6c0fdb4ea255d9f2bf3f04e8936a1ce77d25e76
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 Jul 30, 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