Metadata-Version: 2.4
Name: ascendtop
Version: 0.1.0
Summary: nvitop-like terminal monitor for Ascend NPUs
Keywords: ascend,npu,monitoring,terminal,npu-smi
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: psutil>=5.9

# ascendtop

`ascendtop` is a nvitop-like terminal monitor for Ascend NPUs.

It prefers the Ascend DCMI library (`libdcmi.so`) through Python `ctypes`, so it does not depend on the exact text layout of `npu-smi info`. If DCMI is unavailable, it falls back to parsing `npu-smi info`.

The terminal layout follows nvitop's main screen structure: an nvidia-smi-style device panel, a compact host CPU/MEM/SWAP panel, and a process panel with `NPU PID USER NPU-MEM %SM %HMBW %CPU %MEM TIME COMMAND`.

## Usage

```bash
pip install ascendtop
ascendtop
```

One-shot output:

```bash
ascendtop --once
```

Force backend:

```bash
ascendtop --backend dcmi
ascendtop --backend npu-smi
```

## Notes

- The DCMI backend reads card/device metadata, power, temperature, HBM usage, utilization, and process memory via `/usr/local/Ascend/driver/lib64/driver/libdcmi.so`.
- The fallback parser supports the `npu-smi 26.0.rc1` table format.
- Process command/user/RSS/CPU details are enriched via `psutil` when the PID is visible in the current namespace.
