(Formerly Autoperfpy)
TrackIQ is a multi-tool performance validation repository.
It contains one shared library (trackiq_core) and three tool applications (autoperfpy, minicluster, trackiq_compare) built on top of that library.
Use these names consistently:
trackiq:- The repository/monorepo name.
- Contains all packages and tools.
trackiq_core:- The shared Python library.
- Defines canonical result schema (
TrackiqResult), serialization/validation, hardware and power integrations, UI base components, baseline/report utilities.
autoperfpy:- Edge and inference benchmarking tool.
- Produces
TrackiqResultJSON outputs.
minicluster:- Local distributed training validation tool.
- Produces
TrackiqResultJSON outputs and health checkpoint data.
trackiq-compare(trackiq_comparepackage):- Result-to-result comparison tool.
- Compares any two
TrackiqResultfiles regardless of source tool.
trackiq/
├── trackiq_core/ # shared library
├── autoperfpy/ # inference / edge benchmarking tool
├── minicluster/ # distributed training validation tool
├── trackiq_compare/ # comparison tool
├── dashboard.py # unified dashboard launcher
└── tests/ # repo-level tests
# from repo root
py -3.12 -m pip install -e .Install optional stacks as needed:
# dashboards (Streamlit)
py -3.12 -m pip install -e ".[ui]"
# distributed training / torch features
C
# GPU/NVML integrations
py -3.12 -m pip install -e ".[gpu]"
# full contributor environment
py -3.12 -m pip install -e ".[dev,test,security]"
# contributor environment with all optional runtime stacks
py -3.12 -m pip install -e ".[dev,test,security,ml,ui,gpu,reports]"If your shell entry points are stale on Windows, use module execution directly:
py -3.12 -m autoperfpy.cli --help
py -3.12 -m minicluster.cli --help
py -3.12 -m trackiq_compare.cli --help- Run a producer tool (
autoperfpyorminicluster) to generate canonicalTrackiqResultJSON. - Compare results with
trackiq-compare. - View results in dashboards (tool-specific Streamlit apps or unified launcher).
Main use: edge/inference benchmark runs, profile-driven validation, and report generation.
autoperfpy devices --list
autoperfpy run --auto --duration 30 --export output/autoperf_result.json
autoperfpy run --profile automotive_safety --batch-size 4 --precision bf16 --export output/autoperf_profile_result.json
autoperfpy run --manual --device cpu_0 --precision int4 --duration 10 --export output/autoperf_manual_result.json
autoperfpy analyze latency --csv output/results.csv
autoperfpy report html --json output/autoperf_result.json --output output/autoperf_report.html
autoperfpy report pdf --json output/autoperf_result.json --output output/autoperf_report.pdf --pdf-backend autoPrecision modes include fp32, fp16, bf16, int8, int4, and mixed with capability-aware fallback per device.
Dashboard options:
# tool-owned app
streamlit run autoperfpy/ui/streamlit_app.py
# unified launcher (note the `--` before dashboard args)
python -m streamlit run dashboard.py -- --tool autoperfpy --result output/autoperf_result.json
# unified launcher browser mode (pick file in UI)
python -m streamlit run dashboard.py -- --tool autoperfpy
# convenience wrapper (no Streamlit `--` separator needed)
python launch_dashboard.py --tool autoperfpy --result output/autoperf_result.json
# all-tools unified mode (default)
python launch_dashboard.pyUnified mode now includes:
- AutoPerfPy run configuration (manual/auto), result browser, and graph-rich dashboard
- MiniCluster run configuration (workers/steps/batch/lr/seed/tdp) and quick smoke run
- Compare configuration (browse/manual inputs, labels, regression threshold) with comparison graphs
Main use: distributed training correctness/performance/fault validation.
minicluster run --workers 2 --steps 50 --output minicluster_results/run_metrics.json
minicluster run --workers 2 --steps 50 --health-checkpoint-path ./minicluster_results/health.json
minicluster monitor status --checkpoint ./minicluster_results/health.json
minicluster report pdf --result minicluster_results/run_metrics.json --output minicluster_results/report.pdf --pdf-backend autoDashboard options:
# tool-owned app
streamlit run minicluster/ui/streamlit_app.py
# unified launcher (note the `--` before dashboard args)
python -m streamlit run dashboard.py -- --tool minicluster --result minicluster_results/run_metrics.json
# convenience wrapper
python launch_dashboard.py --tool minicluster --result minicluster_results/run_metrics.jsonMain use: compare two canonical results and generate terminal/HTML reports.
trackiq-compare run output/autoperf_result.json minicluster_results/run_metrics.json
trackiq-compare run output/autoperf_result.json minicluster_results/run_metrics.json --html output/comparison.html
trackiq-compare run output/autoperf_result.json minicluster_results/run_metrics.json --label-a "AMD MI300X" --label-b "NVIDIA A100"
trackiq-compare report pdf output/autoperf_result.json minicluster_results/run_metrics.json --output output/comparison.pdf --pdf-backend autoBaseline flows:
trackiq-compare baseline output/autoperf_result.json --name edge_baseline
trackiq-compare vs-baseline output/autoperf_result.json edge_baselineDashboard options:
# tool-owned app
streamlit run trackiq_compare/ui/streamlit_app.py
# unified launcher (note the `--` before dashboard args)
python -m streamlit run dashboard.py -- --tool compare --result-a output/autoperf_result.json --result-b minicluster_results/run_metrics.json --label-a "AMD MI300X" --label-b "NVIDIA A100"
# convenience wrapper
python launch_dashboard.py --tool compare --result-a output/autoperf_result.json --result-b minicluster_results/run_metrics.json --label-a "AMD MI300X" --label-b "NVIDIA A100"All tool outputs should conform to:
from trackiq_core.schema import TrackiqResultThis is the single schema contract across the ecosystem.
trackiq_compare and dashboards assume TrackiqResult-compatible JSON.
trackiq_coreincludes multi-platform detection and metrics paths for NVIDIA, AMD, Intel, Apple Silicon, and CPU (best effort depending on available system tools).- Power profiling readers support ROCm SMI, tegrastats, and simulation fallback.
py -3.12 -m pytest -qtrackiq_core/ui/USAGE.md: library-first dashboard API usage.minicluster/monitor/README.md: live health monitoring pipeline and anomaly model.trackiq_compare/README.md: comparison semantics, CLI options, and report behavior.
MIT. See LICENSE.