XuehaiPan/nvitop

An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management.

nvitop – 인터랙티브 NVIDIA GPU 프로세스 뷰어

개요

  • 순수 Python 기반의 크로스 플랫폼 명령줄 도구로, NVIDIA GPU와 이를 사용하는 프로세스에 대한 상세하고 다채로운 정보를 표시합니다. nvidia-smi처럼 한 번 실행하거나 인터랙티브 컨트롤이 있는 라이브 “모니터” 모드로 계속 실행할 수 있습니다.

AI/ML에 중요한 이유

  • 딥러닝 워크로드는 NVIDIA GPU에서 실행됩니다. 어떤 작업이 어떤 GPU를 사용하는지, 메모리/사용률을 알고, 실행 중인 프로세스를 종료하거나 신호를 보낼 수 있는 것은 공유 클러스터나 단일 머신 워크스테이션을 관리하는 연구자와 엔지니어에게 필수적입니다.

주요 기능

  • 풍부한 출력 – nvidia-smi보다 많은 필드(예: 프로세스 트리, 환경 변수)를 색상화된 박스 드로잉으로 표시.
  • 모니터 모드 – 막대 차트, 기록 그래프, 프로세스 정렬/필터링, 마우스/키보드 상호 작용이 있는 라이브 업데이트 보기.
  • 프로세스 제어 – 선택한 프로세스에 UI에서 직접 SIGINT/TERM/KILL 전송(관리자는 sudo nvitop).
  • CUDA 가시 디바이스 선택기 – 번들된 nvisel 도구로 실험을 위한 CUDA_VISIBLE_DEVICES 설정 지원.
  • 크로스 플랫폼 – Linux 및 Windows에서 작동(후자는 windows-curses 사용).
  • 빠르고 효율적 – nvidia-ml-py 바인딩을 통해 NVIDIA Management Library(NVML)와 통신하고, cachetools로 쿼리를 캐시하며, 백그라운드 스레드에서 데이터를 수집.
  • 통합 가능 – 사용자 정의 모니터링 스크립트나 대시보드 구축을 위한 저수준 Python API(Device, Process, Host) 제공.
  • 내보내기 및 Grafana 지원 – 별도의 nvitop-exporter가 메트릭을 Prometheus/Grafana로 푸시할 수 있습니다.

설치

# 권장: uvx 또는 pipx로 격리된 환경에서 실행
uvx nvitop          # 또는
pipx run nvitop

# 또는 PyPI / conda-forge에서 설치
pip install -U nvitop
conda install -c conda-forge nvitop

GitHub 저장소에서 직접 설치할 수도 있습니다: pip install git+https://github.com/XuehaiPan/nvitop.git

기본 사용법

  • 일회성 쿼리(nvidia-smi와 동일): nvitop -1
  • GPU 0 및 1만 표시: nvitop -1 -o 0 1
  • 라이브 모니터(기본값): nvitop
  • 모니터 레이아웃 전환: -m auto|full|compact (또는 UI 내에서a、f、c 키 누르기)
  • 컴퓨트 컨텍스트가 있는 프로세스로 필터링: -c
  • ASCII 문자만 사용(일반 터미널용): -U
  • 읽기 전용 모드(kill/terminate 단축키 없음): --readonly

인터랙티브 컨트롤(모니터 모드)

키 동작
Ctrl-C / T / K 선택한 프로세스 중단/종료/강제 종료
t 트리 뷰 화면 열기(신호 전송에 권장)
Enter 라이브 그래프가 있는 프로세스별 메트릭 화면 열기
h 도움말 화면 표시
q 종료
화살표 키 / 마우스 행 탐색

CUDA 가시 디바이스 선택기

  • 동봉된 CLI nvisel을 실행하여 새 프로세스에 표시할 GPU를 인터랙티브하게 선택하여 실험 설정을 간소화합니다.

모니터를 넘어

  • 이 패키지에는 GPU 통계를 Prometheus로 내보낼 수 있는 리소스 메트릭 수집기(nvitop-exporter)가 포함되어 Grafana 대시보드를 지원합니다(README의 스크린샷 참조).
  • 저수준 Python API를 통해 개발자는 자신의 도구나 노트북에 GPU 상태 점검을 포함할 수 있습니다.

요구 사항

  • Python 3.8 이상
  • NVML 라이브러리가 포함된 NVIDIA 드라이버(드라이버 또는 CUDA 툴킷에 번들)
  • nvidia-ml-py, psutil, Unix에서는 curses(Windows에서는 windows-curses 패키지 필요).

문서 및 지원


nvitop은 NVIDIA GPU에서 AI/ML 워크로드를 실행하는 모든 사람에게 실용적인 유틸리티로, 표준 nvidia-smi 도구보다 풍부하고 인터랙티브한 GPU 상태 및 프로세스 사용 현황 보기를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트