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
[!WARNING] The development branch and associated python package are still experimental, and do not include all features yet. For a stable release, please refer to the main branch.
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]
Requirements
- Python 3.9+
- GCC (for compiling benchmark binaries)
Command-Line Interface
The installed command is:
carm
Available subcommands:
benchmark- run benchmark suitesgui- launch the results dashboardprofile- coming soon
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 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
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.1.dev0.tar.gz.
File metadata
- Download URL: carm_roofline-1.0.1.dev0.tar.gz
- Upload date:
- Size: 212.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b6ba9f603ac9f18fa101df4692ed22daf178abbfcc898be27dd50ae11da3fa9
|
|
| MD5 |
025edd027991998e9df5b06307a1987c
|
|
| BLAKE2b-256 |
121eb573512bdd545811fc1943d8d52341ae0597d0a77daee7473ab1799e8a4f
|
File details
Details for the file carm_roofline-1.0.1.dev0-py3-none-any.whl.
File metadata
- Download URL: carm_roofline-1.0.1.dev0-py3-none-any.whl
- Upload date:
- Size: 222.8 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 |
f5f4dc95bc6343ec06f6798696fc4e3818ce56ff9811252767052553063f03a1
|
|
| MD5 |
1407938252f9e5df7cb8bcfd036faa70
|
|
| BLAKE2b-256 |
c1d9149e5bfd059df95b23ba9ad4bc357c5e5c73f7990b89b34647049f4531c9
|