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

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.1.tar.gz (57.6 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.1-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jwatch-0.1.1.tar.gz
  • Upload date:
  • Size: 57.6 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.1.tar.gz
Algorithm Hash digest
SHA256 7c3754cbe1abf8babb390ef8543ab5ea0715127887ad7ffe20e91bb8eab0a8ab
MD5 852a1d4077b7fbd3a138052943d52dde
BLAKE2b-256 a819bfc619d924ad824447867c00612129757e51e86204b1170b419d084ef3c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jwatch-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f588ed2807634751378d0f582ace63ceabb8fb1bf8c2354cb0b0d9af7637eda
MD5 7ea2bf67009905990b4b4fef4700f4fd
BLAKE2b-256 eeb1c33e37df14104f85ad1e1e83f4a1960e8b9bc85fa95186d772a0cee4c7b4

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