carm gui
Launch the interactive CARM GUI, a Dash + Plotly dashboard for exploring roofline plots and application performance data.
Run carm gui --help for a full argument listing.
Basic Usage
carm gui [options]
Once launched, open the URL printed in the terminal (default: http://127.0.0.1:8050) in your browser.
What You’ll See
The GUI displays the architecture’s roofline — peak performance bounds for compute and memory at each cache level — with application data points plotted on it (if profiling data was loaded). Each point represents a code region positioned by its performance (GFLOP/s) and arithmetic intensity (FLOP/byte).
- Memory-bound points fall below the roofline intersection — they benefit from better data locality and reduced memory traffic.
- Compute-bound points sit on or near the compute roof — they benefit from increasing computational intensity.
- The distance to the roofline shows how much performance headroom exists.
Arguments by Category
Where to find data (--results-dir)
The GUI scans --results-dir (default: platform user data dir for carm) for roofline CSV files from carm benchmark and profiling data from carm profile. Point it elsewhere if your results live in a non-standard location.
Server configuration (--gui-host, --gui-port, --gui-debug)
The Dash server binds to 127.0.0.1:8050 by default. Change the host to 0.0.0.0 to access the GUI from other machines on your network.
Verbosity (--verbose)
Repeat (Use --verbose [0-4]) for more detail. Useful when diagnosing why the GUI can’t find or parse result files.
Loading Data
The GUI automatically discovers:
- Roofline JSONL files: generated by
carm benchmark, defining the architecture’s roofs - Application profiling data: generated by
carm profile
GUI Features
Normalization
The plot can normalize performance roofs to the number of threads:
- Normalized roofs normalize roof and application performance per-thread, recommended roof and app thread counts do not match.
- Non-normalized roofs show cumulative performance.