Jetson Workload Analysis & Thermal Hardware Correlation - CLI-based LLM benchmarking and hardware profiler for NVIDIA Jetson
Project description
jWATCH
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
--mockmode 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
--mockto use realtegrastatssampling - Mac/Linux (non-Jetson): use
--mockfor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c3754cbe1abf8babb390ef8543ab5ea0715127887ad7ffe20e91bb8eab0a8ab
|
|
| MD5 |
852a1d4077b7fbd3a138052943d52dde
|
|
| BLAKE2b-256 |
a819bfc619d924ad824447867c00612129757e51e86204b1170b419d084ef3c7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f588ed2807634751378d0f582ace63ceabb8fb1bf8c2354cb0b0d9af7637eda
|
|
| MD5 |
7ea2bf67009905990b4b4fef4700f4fd
|
|
| BLAKE2b-256 |
eeb1c33e37df14104f85ad1e1e83f4a1960e8b9bc85fa95186d772a0cee4c7b4
|