터미널에서 쓰는 보기 좋은 GPU 모니터링 툴을 만들어 봤습니다 (nvmon)

안녕하세요. 연구실 공용 GPU 서버를 쓰면서 필요해서 만든 터미널 모니터를 공유합니다.

보통 GPU 모니터링은 nvidia-smi가 익숙한데요. (다른 유명한 툴으로는 btop, nvtop, nvitop 등이 있습니다.)
공용 GPU 서버에서 정말 궁금한 건 몇 가지 안됩니다.
어느 GPU가 비었는지, 누가 어디서 뭘 돌리는지, 내 학습이 GPU를 제대로 쓰고 있는지.
그런걸 한 눈에 파악하거나 조작하기가 어려워서, 마우스 클릭 기반의 모니터링 툴을 만들었습니다.

nvmon showing four busy H100 GPUs one under the other, the other four hidden, the pointer moving along a graph with the utilization then beside it

  • GPU마다 박스 하나에 사용률 그래프와 그 위의 작업들 (계정·환경별)
  • "GPU 100%"가 실제로 얼마나 바쁜 건지 (H100 이상: 코어, 텐서 코어 구분 표시)
  • 문제가 있을 때만 뜨는 경고: 전력·온도 때문에 느려짐, PCIe 링크 저하
  • 멈춘 내 작업은 눌러서 바로 정리 (PID 찾을 필요 없이, 내 것만)

기존 툴들이 너무 못생겨서, 예쁘게도 만들었습니다. 그래프는 높이마다 색이 부드럽게 이어지고,
색은 호쿠사이, 히로시게, 반 고흐 등의 미술 작품에서 가져온 테마 14개 중에 고를 수 있습니다.

watch nvidia-smi는 생각보다 무겁습니다. nvmon은 그보다 약 10배 가볍게 만들었습니다.

설치는 uv tool install nvmon 한 줄, 인터넷이 막힌 서버엔 .py 파일 하나만 복사하면 됩니다.

혼자 만들어서 쓰는데, 혹시 유용하게 쓰실 분이 있으실까 해서 올려봅니다..
읽어주셔서 감사합니다.. (꾸벅)

1개의 좋아요

어떻게 이런 기발한 생각을 하셨나요??ㅋㅋㅋ 한번 써볼게요

1개의 좋아요

마우스 올렸을 때 더 상세한 정보가 나오는게 좋은거 같습니다 +_+

좋은 도구 공유 감사합니다!!!