Skip to main content

A terminal-based system monitor (TUI) for NVIDIA Grace Blackwell (GB10) and hybrid CPU architectures

Project description

SPARK-SMI

A specialized terminal-based system monitor (TUI) built for NVIDIA Grace Blackwell (GB10) and hybrid ARM architectures — because nvidia-smi alone doesn't tell the full story.

Version Python Platform License Stars


Demo

spark-smi live demo


Why SPARK-SMI?

The NVIDIA DGX Spark (GB10) is a unique system — a Grace Blackwell chip with unified CPU+GPU memory, hybrid Cortex-X925/A725 core clusters, and high-speed MT2910 200G networking. Standard tools like nvidia-smi, htop, and nvtop were not built with this topology in mind. SPARK-SMI was.

What it handles correctly Standard tools
Hybrid P-core / E-core CPU clusters
GB10 Unified Memory (CPU+GPU shared)
MT2910 200G NIC bandwidth monitoring
Mixed GPU architectures in one system
NVML with graceful CLI fallback
Zero system dependencies

Features

  • Snapshot Mode — Runs once and prints to stdout with full ANSI colors, just like nvidia-smi. Pipe it, log it, script it.
  • Live Mode (-l) — Flicker-free TUI that refreshes every second with responsive terminal resize handling.
  • Hybrid CPU Topology — Correctly splits and labels Cortex-X925 (Performance) and Cortex-A725 (Efficiency) core clusters with individual per-core load bars.
  • Unified Memory Aware — Detects GB10 unified memory architecture and maps system RAM to GPU memory display accurately.
  • Dual GPU Support — Handles mixed architectures (e.g. sm_121 GB10 + sm_86 RTX 3090 via OcuLink) simultaneously.
  • NIC Monitoring — Real-time bandwidth utilization across all interfaces: MT2910 200G ports (1–4) and Realtek 10G (port 5), read directly from sysfs.
  • Driver & CUDA Info — Footer displays live Driver version and CUDA version via NVML or nvidia-smi fallback.
  • Robust Fallbacks — NVML → nvidia-smi CLI → graceful degradation. Adapts to missing sensors, fan controllers, and unsupported queries without crashing.

Screenshots

Full Dashboard Resize-Safe
Main View Scales cleanly from narrow to full-width

Prerequisites

  • Linux (aarch64 recommended — built and tested on DGX Spark)
  • Python 3.6+
  • NVIDIA Drivers installed
  • nvidia-smi in PATH

Installation

Option 1: Quick Run (Virtual Environment)

The safest method on DGX appliances — no system libraries touched.

git clone https://github.com/chappa-ai-llc/spark-smi.git
cd spark-smi
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
# Snapshot (single output)
./venv/bin/python3 spark-smi.py

# Live mode
./venv/bin/python3 spark-smi.py -l

Option 2: System Alias (Recommended)

Type spark-smi from anywhere.

echo "alias spark-smi='~/spark-smi/venv/bin/python3 ~/spark-smi/spark-smi.py'" >> ~/.bashrc
source ~/.bashrc

Usage

Command Action
spark-smi Snapshot — print once and exit
spark-smi -l Live mode — interactive TUI
spark-smi -n 0.5 -l Live mode at 0.5s refresh rate

Interactive Controls

Key Action
q Quit
t Toggle temperature units (°C / °F)
u Toggle memory units (GiB / GB)

Tested Hardware

Component Details
System NVIDIA DGX Spark
SoC GB10 Grace Blackwell (sm_121)
External GPU RTX 3090 via M.2 OcuLink (sm_86) — mixed architecture, single dashboard
NICs MT2910 × 4 (200G, 100G & 40G DAC), Realtek × 1 (10G, 5G, 2.5G, 1G)
OS Linux 6.17.0-nvidia
Driver 580.126.09
CUDA 13.0

Roadmap

  • Fan Monitoring — Read GB10 chassis fan speeds without sudo (currently blocked by nvsm/IPMI privilege requirements)
  • REST API / Prometheus Exporter — Expose a lightweight JSON HTTP endpoint for Grafana and Prometheus integration
  • CSV Logging Mode--csv flag to pipe raw metrics to stdout or file for external processing
  • PyPI Packagepip install spark-smi one-liner install
  • Multi-node Support — Monitor clustered DGX Spark nodes from a single dashboard

About

Built by chappa-ai-llc — a solo homelab project born out of frustration with existing tools on novel hardware.

If this saved you time, a ⭐ on the repo is appreciated.


License

MIT — see LICENSE for details.

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

spark_smi-3.6.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

spark_smi-3.6.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file spark_smi-3.6.0.tar.gz.

File metadata

  • Download URL: spark_smi-3.6.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for spark_smi-3.6.0.tar.gz
Algorithm Hash digest
SHA256 bcd24931b186afa1f4a8dfbad48371170033ad692ff9c7e4624d491917ff449f
MD5 9cf7ef78c0b9aac2e9bf1a806b632b87
BLAKE2b-256 4584adceba913b1274f4fdeb23131f78c846dbca2ebcd28ed68a1881db82fc9e

See more details on using hashes here.

File details

Details for the file spark_smi-3.6.0-py3-none-any.whl.

File metadata

  • Download URL: spark_smi-3.6.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for spark_smi-3.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddc66d31ac096583bb355458c914c26e3e5a92f631455aca43c7d0699d6df991
MD5 53d1009b7617a5acd9a61fac2646884b
BLAKE2b-256 957418d6fad833bbef6546db80d55426c7ac0fd05a3ae58bbef0849997ba1367

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