Skip to main content

An interactive Ascend-NPU process viewer.

Project description

nputop

Python Versions PyPIPyPI Downloads Conda Downloads Platform License 中文文档


nputop is an interactive command-line tool designed specifically for monitoring and managing processes running on Ascend NPUs.


Key Features

  • Real-time monitoring: Track NPU usage, memory status, temperature, and power draw.
  • System Information: Display driver and CANN version, and estimate power limits for different NPU models.
  • Interactive UI: Navigate with keyboard/mouse and manage processes effortlessly.
  • Process management: View, select, and interact with running NPU processes directly.
  • Multi-NPU Support: Efficiently manage multiple Ascend NPUs simultaneously.
  • CLI convenience: Easy integration into terminal workflows with minimal setup.
  • Enhanced Compatibility: Improved support for various Ascend NPU models including Atlas A3 and devices with single NPUs.

Screenshots


What's New

Latest Improvements

  • Power Limit Estimation: Automatically estimates power consumption upper limits based on NPU model characteristics (AI cores count and core frequency)
  • Version Information: Extracts and displays driver version from npu-smi info and CANN version from system files
  • Enhanced Device Compatibility: Fixed regex patterns to properly support Atlas A3 and single NPU devices like OrangePi Pro with Ascend 310B
  • Robust Parsing: Refactored parsing logic to handle incomplete field scenarios and improve maintainability

Installation

Prerequisites:

  • Python ≥ 3.9
  • Ascend NPU Firmware & Drivers(link)

If you're using Conda, we recommend installing nputop via conda-forge:

# Option 1: without changing default config
conda install -c conda-forge nputop

# Option 2 (recommended): set conda-forge as highest-priority channel
conda config --add channels conda-forge
conda config --set channel_priority strict

# Then install
conda install nputop

Or, if you prefer to use pip, you can install it directly from PyPI:

pip install ascend-nputop

For development or editable installations:

git clone https://github.com/youyve/nputop.git
cd nputop
pip install -e .

Quick Start

Launch nputop directly from your terminal:

nputop

Set environment variables (ASCEND_RT_VISIBLE_DEVICES) to restrict visible NPUs.


Usage & Shortcuts

  • Navigate screens: or TAB
  • Toggle compact mode: C
  • Kill a process: select a process and press K
  • Refresh manually: R
  • Exit: Q or Ctrl+C

Supported Devices

Currently Supported

  • Ascend 910 Series - Full support
  • Ascend 310B - Enhanced compatibility for single NPU configurations
  • Atlas A3 - Improved device detection and parsing

Power Estimation

nputop now provides intelligent power limit estimation for NPU models where exact power data is unavailable, based on:

  • Number of AI cores
  • Core frequency characteristics

Project Structure

nputop
├── assets/             # Images for documentation
├── nputop/
│   ├── api/            # Ascend NPU APIs & backend
│   ├── gui/            # Interactive UI (GPL-3.0-only)
│   ├── cli.py          # Command-line entry point
│   └── version.py      # Versioning and metadata
├── tests/              # Unit tests for parsing and compatibility
├── COPYING             # GPL-3.0 License file
├── LICENSE             # Apache 2.0 License file
├── NOTICE              # Acknowledgments and Notices
├── pyproject.toml      # Project configuration
├── setup.py            # Build script
└── README.md           # Documentation

Known Issues & Roadmap

Recently Resolved ✅

  • Power limit data: Now estimated based on NPU model characteristics
  • Driver/CANN version display: Extracted from system information
  • Atlas A3 compatibility: Fixed device detection and parsing
  • Single NPU device support: Improved for devices like OrangePi Pro with Ascend 310B

Ongoing Work 🚧

  • Extended NPU model support: Expanding beyond 910 series
  • Performance optimizations: For large-scale NPU deployments
  • Additional metrics: Enhanced monitoring capabilities

Contributing

We warmly welcome contributions! Feel free to:

  • Report bugs and request features via Issues.
  • Fork the repository and submit pull requests.
  • Improve documentation and examples.
  • Add support for new NPU models and configurations.

Testing

We particularly appreciate contributions that include unit tests for new NPU models


License

This project (nputop) is derived from the original project nvitop by Xuehai Pan.

The licenses applied are:

For full details, see LICENSE, COPYING, and NOTICE.


Contact


Enjoy monitoring your Ascend NPUs with nputop! 🎉

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

ascend_nputop-0.0.5.tar.gz (87.7 kB view details)

Uploaded Source

Built Distribution

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

ascend_nputop-0.0.5-py3-none-any.whl (103.8 kB view details)

Uploaded Python 3

File details

Details for the file ascend_nputop-0.0.5.tar.gz.

File metadata

  • Download URL: ascend_nputop-0.0.5.tar.gz
  • Upload date:
  • Size: 87.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for ascend_nputop-0.0.5.tar.gz
Algorithm Hash digest
SHA256 dea70e52dc6212165e1d254e11b5c419bdb4c9cdf9d2cd2b7b3746d154c17b6a
MD5 5effbfdcde36088b04f91fd8807416ed
BLAKE2b-256 537b88c69c77618d9e7cb7d0453a388b668a60c123369e10db31e2ce1e009161

See more details on using hashes here.

File details

Details for the file ascend_nputop-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: ascend_nputop-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 103.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for ascend_nputop-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b39c686faa2dc6535eb185e46d6ea24d3ccb59bfa139b4e5491aa285a2afdb65
MD5 b442b40541ede2a0b0ebcdd2d3d15ad4
BLAKE2b-256 2cd5d2c849e29ee5572d492cf574aafce4c5b0bbf193e5051f1fd6a04db69752

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