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://0.0.0.0: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.
- Clicking an application point emphasizes the roof ceilings according to the point’s cache-residency fractions.
Arguments by Category
Where to find data (--results-dir)
The GUI scans --results-dir (default: platform user data dir for carm) for benchmark roofline data and application profiling data. 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 0.0.0.0:8050 by default, making it accessible from other machines in the network. Set --gui-host to a specific address (e.g. 127.0.0.1) if you want to restrict access.
Verbosity (--verbose)
Level of terminal output: --verbose [0-4] (0 = quiet, 4 = debug). The default is 3 (configuration details); a bare -v means level 4. Useful when diagnosing why the GUI can’t find or parse result files.
Loading Data
The GUI automatically discovers:
benchmarks.jsonl: benchmark records generated bycarm benchmark, defining the architecture’s roofsapplications.jsonl: profiling data generated bycarm profile
Data is loaded once at GUI startup — a page refresh does not rescan the results directory. Restart the GUI to pick up new benchmark or profiling results.
Paraver mode
Passing --paraver-trace (optionally with --paraver-window-csv) switches the GUI into Paraver mode: the trace’s bursts are plotted on the roofline, a time-window slider and arithmetic-intensity/duration filters control the displayed view, and a Paraver panel exports the metrics back as Paraver-importable windows. See the Paraver section for the full list of controls and exports.
GUI Features
Settings
The Settings panel (navbar button) groups plotting and appearance controls:
- Plotting settings: Normalize performance by threads
- Plot style: 2^N axis tick labels, Show roof fills, Point size multiplier, Line width, and font sizes for axis labels, axis ticks, tooltips, and the legend