Skip to main content

CARM: Cache-Aware Roofline Model benchmarking and visualization toolkit

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carm_roofline-1.0.5.tar.gz (222.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carm_roofline-1.0.5-py3-none-any.whl (237.7 kB view details)

Uploaded Python 3

File details

Details for the file carm_roofline-1.0.5.tar.gz.

File metadata

  • Download URL: carm_roofline-1.0.5.tar.gz
  • Upload date:
  • Size: 222.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for carm_roofline-1.0.5.tar.gz
Algorithm Hash digest
SHA256 7c844838d6eeb1ace2a5f62fd4bb508177fcf7ae1069fcdaf69690f8c5ef2f07
MD5 724b6f5c91d661d390fd59ce34a97f8e
BLAKE2b-256 b8047614694b85fae796cfc16fb0a050bf99eb33bf6dfa3503c0599b2632a33d

See more details on using hashes here.

Provenance

The following attestation bundles were made for carm_roofline-1.0.5.tar.gz:

Publisher: python-publish.yml on champ-hub/carm-roofline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file carm_roofline-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: carm_roofline-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 237.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for carm_roofline-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9f1c365156ef0a07421e497ab3ee77a82235bbe5c2ad753dc41f253cda7a193f
MD5 4f10ebbf7a123ea22a8b4222cdbd717a
BLAKE2b-256 089e9181c3a713163e08e1fa0065a340aa7e78a3ba16278e2da3c9931806d920

See more details on using hashes here.

Provenance

The following attestation bundles were made for carm_roofline-1.0.5-py3-none-any.whl:

Publisher: python-publish.yml on champ-hub/carm-roofline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page