Skip to main content

Jetson Workload Analysis & Thermal Hardware Correlation - CLI-based LLM benchmarking and hardware profiler for NVIDIA Jetson

Project description

jWATCH logo

jWATCH

License: MIT Python 3.9+ Platform: Jetson jetson-ai-lab.io up

jWATCH is a command-line benchmarking tool for NVIDIA Jetson.

It runs LLM inference through Ollama and samples hardware metrics in parallel, so you can inspect throughput/latency together with thermal and power behavior.

What it does

  • Benchmarks single models (bench)
  • Compares multiple models (compare)
  • Streams live hardware metrics (monitor)
  • Saves benchmark history to SQLite (history)
  • Compares two historical runs (diff)
  • Exports runs to JSON (export)
  • Supports --mock mode for development on non-Jetson machines

Why this exists

On edge devices, raw tokens/sec can be misleading. A model can look slower simply because the board is hotter, power-limited, or memory-constrained. jWATCH captures inference and hardware state together so comparisons are easier to trust.

Installation

python3 -m pip install -U pip
python3 -m pip install .

For development:

python3 -m pip install pytest pytest-asyncio pytest-cov black mypy

Quick start

1. Validate environment

python3 -m edgewatch check

2. Run a quick mock benchmark (works on Mac/Linux)

python3 -m edgewatch bench \
  --model qwen3.5:0.8b \
  --prompt "Hello" \
  --runs 2 \
  --mock

3. Compare two models

python3 -m edgewatch compare \
  --model qwen3.5:0.8b \
  --model qwen:4b \
  --prompt "Write a short summary" \
  --runs 3 \
  --mock

4. Query stored runs

python3 -m edgewatch history --last 10
python3 -m edgewatch diff <run_id_a> <run_id_b>
python3 -m edgewatch export --output report.json --last 10

Running on Jetson vs non-Jetson

  • Jetson: run without --mock to use real tegrastats sampling
  • Mac/Linux (non-Jetson): use --mock for telemetry
  • Ollama: optional in mock mode, required for real inference runs

CLI commands

bench    Benchmark a single model
compare  Compare multiple models
monitor  Monitor hardware metrics
check    Check Ollama + tegrastats availability
history  Show saved benchmark runs
diff     Compare two run IDs
export   Export runs to JSON

Project layout

edgewatch/
  analysis/
  correlation/
  ollama/
  report/
  storage/
  tegrastats/
  utils/
  edgewatch/cli.py
tests/
assets/

Roadmap

  • Better throttle event classification and reporting
  • Stronger statistical summaries for long benchmark sessions
  • Packaging cleanup for straightforward pip install -e .

Contributing

Issues and PRs are welcome. If you plan to add a feature, open an issue first so we can align on scope.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jwatch-0.1.0.tar.gz (56.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jwatch-0.1.0-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file jwatch-0.1.0.tar.gz.

File metadata

  • Download URL: jwatch-0.1.0.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jwatch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 da6fb01cb14ccfc9d4caddc371d96283cfb16671b0a60bed31f073f1da67af2d
MD5 5ff8c3ba0423781ad5011f53067b0ce2
BLAKE2b-256 c79c70318cfd34d1ba734c5d4e017e0e95fb5737ea7ad835f83edd04cac434ad

See more details on using hashes here.

File details

Details for the file jwatch-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jwatch-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jwatch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46d3be48db4905f9ef78f9c7ff2d974295a1a3fffa7512991c8195d2e3c9c7b6
MD5 2d472875863baf202b187e8aef9b1ed0
BLAKE2b-256 d4bfa51326858bc17df8d82b8291b54c854de0e858fefaa0470bc1bf2cecead9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page