Skip to main content

CARM: Cache-Aware Roofline Model benchmarking and visualization toolkit

Project description

CARM Roofline

CARM is a Cache-Aware Roofline Model toolkit for CPU benchmarking and visualization.

The package provides:

  • automatic microbenchmark generation for supported ISAs
  • arithmetic, memory, and roofline benchmark modes
  • CLI output in table, JSON, CSV, and plot formats
  • optional web GUI for interactive result visualization

Installation

Install from PyPI:

pip install carm-roofline

Install with optional GUI dependencies:

pip install "carm-roofline[gui]"

Install all extras (GUI + development tools):

pip install "carm-roofline[all]"

Requirements

  • Python 3.10+
  • Linux (POSIX)
  • GCC toolchain (for compiling benchmark binaries)

Command-Line Interface

The installed command is:

carm

Available subcommands:

  • benchmark - run benchmark suites
  • gui - launch the results dashboard
  • profile - reserved (not implemented yet)

Show help:

carm --help
carm benchmark --help
carm gui --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 --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 under carm_results.

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 CARM 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.0.dev2.tar.gz (207.9 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.0.dev2-py3-none-any.whl (220.6 kB view details)

Uploaded Python 3

File details

Details for the file carm_roofline-1.0.0.dev2.tar.gz.

File metadata

  • Download URL: carm_roofline-1.0.0.dev2.tar.gz
  • Upload date:
  • Size: 207.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for carm_roofline-1.0.0.dev2.tar.gz
Algorithm Hash digest
SHA256 772d1b03c24bb3e09852e735f415b2a6aba161ad50483cd2b91fac4a2fb7c2ce
MD5 d42d3c2f055ac48920594b0d4dc8139e
BLAKE2b-256 1f427fd603b6a645dcab8820531998a8f64d3204ae3c0f24c44632fd99a93b00

See more details on using hashes here.

File details

Details for the file carm_roofline-1.0.0.dev2-py3-none-any.whl.

File metadata

File hashes

Hashes for carm_roofline-1.0.0.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 c95fb67b44e710a6ee807a2d76be58d2c890af68e5131cf4ad565f8c99fa8a24
MD5 3e3df376948aa5504917e80bc39ff9a0
BLAKE2b-256 28977d2dfe56ae83f7f27b4bef9651d18140ab5037440d0502e640e9dcc721b0

See more details on using hashes here.

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