CS 공부/기타

[기타 CS] NVIDIA 그래픽카드 상태 모니터링 해보기

강_토발즈 2025. 5. 13. 23:43

 

 

 

나는 2017년인가에 조립식 데스크탑을 구매하였고, 이 때 NVIDIA 의 Geforce 1070 버전 (확실하지 않음)의 GPU 를 함께 구매하였다. 고사양의 게임을 하진 않지만 혹시 모를 상황에 대비해서 적당한 가격대(가스라이팅)의 그래픽 카드를 선택하여 장착했었다.

 

아침에 라디오를 들으며 출근 하던 중, 서울대학교에서 GPU 를 이용한 AI 실험이 많아 전력을 꽤 많이 사용한다고 들었다.

이러한 내용을 들으면서, 나도 집에 그래픽 카드가 있는데, 이 그래픽 카드의 전력 사용량이나 실시간 온도, 사용율 정보를 받아내고 모니터링 할 수 있지 않을까? 라는 생각이 들었다.

 

컴퓨터와 네트워크 관련 궁금증이 들었을때 가장 유익하면서도 즐거운 이유는 바로 시도해볼 수 있다는 것이다.

바로 내 컴퓨터에 장착된 GPU 의 상태를 가져와 보도록 하자.

 

 

1. 제조사에서 제공하는 명령어 활용

 

- NVIDIA GPU는 운영체제에서 자체 Agent 인 nvidia-smi 를 이용해서 전력, 온도, 사용율 같은 GPU의 상태를 간단하게 수집할 수 있게 하고 있다. nvidia-smi는 NVIDIA 드라이버 설치할 때 기본으로 설치된다.

nvidia-smi

 

그냥 저 명령어 하나이다. 인자값도 없다. 깔끔하다. 남자답다.

 

기본 정보

  • NVIDIA-SMI 버전은 550.144.03 이며 그래픽카드의 드라이버도 550.144.03 이다. CUDA 는 정확히 모르겠다.
  • GPU name : NVIDIA GeForce GTX 1070 

  • Persistence-M : Off GPU 를 항상 활성화 하는 모드 X -> 필요할 때만 그래픽 카드를 돌린다.
  • Bus-Id : 00000000:01:00.0 GPU 가 메인보드에 연결된 물리적인 위치

  • Disp.A : On 현재 디스플레이(모니터)에 연결하여 사용 중
  • 항목 중 N/A 가 표시된 항목 -> 장착되지 않은 기능 (혹은 사용할 수 없는 기능)

중요 정보

 

정보의 필요성에 따라 어떤 정보가 중요정보가 될지는 정할 수 없지만, 포스팅 내용 상 GPU 상태를 알고싶기 때문에 CPU 상태 정보를 중요 정보로 표기하였다.

 

  • Fan : 17%  팬이 17% 속도로 회전 중

  • Temp : 49C GPU 온도 

  • Perf : P0 성능 상태 (P0 = 최고 성능 모드)

  • Pwr : Usage/CAP : 35W / 180W  총 180W 사용 가능한데 35W 사용 중.

  • Memory-Usage : 455MiB / 8192MiB  VRAM 총 8G 중 455MB 사용 중

  • GPU-Util : 0%  현재 GPU 연산 부하가 없음

  • Computer M. : Default  기본 계산 모드 사용 중

 

Process

 

GPU VRAM 을 사용하고 있는 프로세스 목록을 나열해준다.

 

 

2. 실시간 모니터링 하기

- 시간, GPU 이용율(VRAM), 전력, 온도를 1초마다 로그를 찍는다.

nvidia-smi --query-gpu=timestamp,utilization.gpu,power.draw,temperature.gpu --format=csv -l 1

 

 

추가적으로 프로세스를 동작하지 않고 있기 때문에 GPU 부하와 온도는 일정하고, 1초마다 약 33 W 이하의 전력을 사용하고 있다는 정보를 보내주고 있다.

 

 

3. GPU 정보를 누적하여 모니터링 정보로 만들기 + 전기요금 계산해보기

 

3-1. 실시간 모니터링 정보

 

- 실시간 모니터링에 사용한 명령어를 이용하여, 10초마다 GPU 상태를 전달 받고, 이 로그들을 적당한 기간동안(약 5분 ~10분)
쌓아서 .CVS 파일로 모아 저장하고, 엑셀로 열어서 시각적으로 표현해보도록 하자.

 

nvidia-smi --query-gpu=timestamp,utilization.gpu,power.draw,temperature.gpu --format=csv -l 10 >> gpu_monitor.csv

 

위의 명령어를 사용하면, 10초마다 전달받고 싶은 GPU 상태(시간, 부하, 전력, 온도) 를 저장한다. 현재 터미널의 위치에 CSV 파일을 저장하기 때문에 새로운 경로로 폴더를 만들어서 저장한다. 적당한 시간 (5분 이상) 이 지나면 Ctrl + C 로 종료한다.

 

수집 시작!

 

 

 

명령어를 실행하고 마무리 멘트를 정리하다보니 꽤 많은 로그가 쌓였다.

 

- timestamp 를 x 축으로 잡고 % 항목을 Y 축으로 잡아서 3개를 동시에 나타내거나 하나의 항목만 그래프로 만들어 볼 수 있다.

 

 

 

3-2 전기요금 계산 (가정용 전기)

 

-현재 저장된 로그는 116개. 10초 간격으로 저장되었기 때문에 19분 20초의 전력 사용을 누적하여 계산할 수 있다.

116개의 로그에 나온 전력 사용량을 모두 더하면 3864.92W 이다.

 

-116개의 로그를 통해 평균 33.32W 의 전력을 소비하고 있다.

- 하루 24시간을 컴퓨터를 켜 놓으면

 

- 한 달을 켜놓는다면 30을 더 곱한다

 

- 한 달 내내 큰 작업 없이 컴퓨터를 켜 놓는다면 내 GPU 는 24kWh 를 소모한다는 계산이 나온다.

 

-한전의 전기요금에 따르면 가정용 전기는 1kWh 당 약 110원 ~ 130원 정도이다. ( 기본량 + 사용량 을 계산해야 하지만 누진세 구간에 들어가지 않으면 약 120원 으로 계산할 수 있다.

 

따라서 예상 전기세는...!

 

약 2 달러로 (계산)예상된다.

 

 

4. 마무리

 

GPU 상태를 모니터링할 때, NVIDIA나 AMD 같은 제조사가 제공하는 공식 Agent(NVIDIA-SMI, DCGM 등)를 사용하면 매우 간편하고 빠르게 시스템 상태를 파악할 수 있다. 특히, 별도의 복잡한 설치 없이 드라이버만으로 전력 사용량, 온도, GPU 사용률 같은 주요 지표를 바로 확인할 수 있다는 점은 큰 장점이였다.

 

하지만 제조사의 Agent 제공은 법적으로 강제된 의무사항이 아니다.

 

4-1 NVIDA 의 소프트웨어 라이선스

https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/

 

<구글 번역 결과>

일반 서비스 약관. NVIDIA가 본 계약 또는 주문서에 달리 명시하지 않는 한, 소프트웨어 구독에는 엔터프라이즈 지원, 유지 관리 및 업데이트가 포함됩니다. 엔터프라이즈 지원, 유지 관리 및 업데이트는 영구 라이선스에 대해 별도로 판매될 수 있습니다. 서비스 만료 후, 고객은 본 계약 조건에 따라 마지막으로 지원된 레벨의 영구 라이선스를 사용할 권리를 보유합니다. NVIDIA가 주문서에서 고객의 엔터프라이즈 지원, 유지 관리 및 업데이트 요청을 수락하지 않는 한, NVIDIA는 어떠한 서비스도 제공할 의무가 없습니다. 소프트웨어에 별도의 적용 약관이 적용되지 않는 한, 해당 소프트웨어는 해당 소프트웨어 오퍼링의 일부로 간주되며 본 계약의 적용을 받습니다. 

 

4-2 AMD 의 윤리 및 컴플라이언스 정책

https://www.amd.com/en/corporate/corporate-responsibility/ethics-and-compliance.html?utm

 

4-2-1. Our Approach 부분

"AMD is committed to conducting our business in a fair, ethical, and honest manner and in compliance with all applicable laws, rules, and regulations."

  • 의미: AMD는 '법규 준수(compliance)'를 지키기 위해 노력한다는 선언.
  • 하지만 "소프트웨어 제공 의무"는 여기에도 없음.

4-2-2. Business Conduct Training 부분

"All employees are required to complete the WWSBC training when hired and every three years thereafter."

  • 직원 대상 윤리, 법규 준수 교육은 의무화했지만,
  • GPU 모니터링 도구 제공 같은 제품 관련 의무는 아님.

4-2-3. Services and Risk Assessment 부분

"The Internal Audit function at AMD conducts audits of control procedures aimed at preventing anti-competitive practices."

  • 반독점(anti-competition) 관련 리스크 관리를 내부적으로 하고 있다.
  • (역시 소프트웨어 제공 의무와는 무관)

 

 

그래픽 카드를 만드는 거대한 두 제조사의 정책을 비춰 본다면

 

제조사가 API를 변경하거나, 특정 모델에 대한 지원을 중단하거나, 배포 정책을 바꿀 경우 GPU 모니터링 방법도 계속해서 바꿔줘야 한다.(의존성이 너무 크다는 것이 문제)

따라서, 안정적이고 지속적인 모니터링이 필요하다면 현재는 제조사 Agent를 잘 활용하되, 장기적인 관점에서는 의존성을 낮추기 위한 '자체 Agent' 개발이 필요하다고 생각된다.