Metadata-Version: 2.4
Name: nvsonar
Version: 1.0.0
Summary: Active GPU diagnostic tool that identifies performance bottlenecks
Author: Bekmukhamed Tursunbayev, Varvara Bondarenko
License: Apache-2.0
Project-URL: Homepage, https://github.com/btursunbayev/nvsonar
Project-URL: Repository, https://github.com/btursunbayev/nvsonar.git
Keywords: gpu,cuda,nvidia,monitoring,diagnostics,performance
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Hardware
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: nvidia-ml-py>=12.535.0
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: textual>=0.47.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Dynamic: license-file

# NVSonar

[![PyPI version](https://img.shields.io/pypi/v/nvsonar.svg)](https://pypi.org/project/nvsonar/)
[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)

Active GPU diagnostic tool that identifies performance bottlenecks using targeted micro-probes.

## Why NVSonar?

Traditional GPU monitoring tools show utilization percentages, but this can be misleading. A GPU reporting 100% utilization may actually be computing useful work, or it may be stalled waiting on memory transfers (memory-bound) or PCIe transfers (PCIe-bound).

## Features

- Runs CUDA micro-probes to stress-test specific GPU subsystems
- Monitor temperature, power, utilization, clocks
- Provides an interactive TUI with multi-GPU support
- Detects performance bottlenecks in memory, compute, or PCIe
- Generates an overall GPU health and performance score

## Installation

```bash
pip install nvsonar
```

## Quick Start

```bash
# Launch interactive TUI with all GPUs and live metrics
nvsonar
```

## Interface

```
┌─ NVSonar v1.0 ─────────────────────────────────────────────────┐
│                          Available GPUs                        │  
┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━┩
│ Index │ Name                       │ Memory │ Driver    │ CUDA │
│   0   │ NVIDIA GeForce GTX 1650 Ti │ 4.0 GB │ 580.95.05 │ 13.0 │
└───────┴────────────────────────────┴────────┴───────────┴──────┘

╭─────────────────────── GPU 0 Metrics ──────────────────────────╮
│  Temperature         45.0°C                                    │
│  Power               2.8W                                      │
│  GPU Utilization     0%                                        │
│  Memory Utilization  0%                                        │
│  Memory Used         0.4 / 4.0 GB                              │
│  GPU Clock           300 MHz                                   │
│  Memory Clock        405 MHz                                   │
╰────────────────────────────────────────────────────────────────╯
```

- All available GPUs displayed in table at top
- Live metrics for each GPU (updates every 0.5s)
- Press 'q' to quit

## Requirements

- Python 3.10+
- NVIDIA GPU with driver installed
- CUDA toolkit (for active probes)
- Linux (tested on Ubuntu)


## License

Apache License 2.0 - see [LICENSE](LICENSE) for details.
