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 suitesgui- launch the results dashboardprofile- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
772d1b03c24bb3e09852e735f415b2a6aba161ad50483cd2b91fac4a2fb7c2ce
|
|
| MD5 |
d42d3c2f055ac48920594b0d4dc8139e
|
|
| BLAKE2b-256 |
1f427fd603b6a645dcab8820531998a8f64d3204ae3c0f24c44632fd99a93b00
|
File details
Details for the file carm_roofline-1.0.0.dev2-py3-none-any.whl.
File metadata
- Download URL: carm_roofline-1.0.0.dev2-py3-none-any.whl
- Upload date:
- Size: 220.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c95fb67b44e710a6ee807a2d76be58d2c890af68e5131cf4ad565f8c99fa8a24
|
|
| MD5 |
3e3df376948aa5504917e80bc39ff9a0
|
|
| BLAKE2b-256 |
28977d2dfe56ae83f7f27b4bef9651d18140ab5037440d0502e640e9dcc721b0
|