Ubuntu에서 GPU 확인 가이드 – nvidia-smi 사용법 및 설정 절차

1. 소개

Ubuntu에서 GPU를 활용할 때는 그 상태를 정확히 확인하는 것이 중요합니다. 특히, 딥러닝이나 그래픽 렌더링 작업에서는 GPU 사용 상황과 드라이버 버전을 파악하는 것이 필수입니다. 이 기사에서는 NVIDIA GPU 관리 도구인nvidia-smi의 사용 방법을 설명하고, Ubuntu에서 GPU 확인 방법을 소개합니다.
侍エンジニア塾

2. nvidia-smi로 GPU 정보를 확인하기

nvidia-smi는 NVIDIA 제조 GPU의 사용 현황 및 메모리 사용량 등을 모니터링할 수 있는 커맨드라인 도구입니다. 특히, GPU의 가동 상황을 실시간으로 확인하거나, 상세한 사용 정보를 얻을 때 유용합니다.

기본적인 사용법

다음 명령으로 GPU 사용 현황 및 메모리 사용량을 실시간으로 확인할 수 있습니다.
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1
이 명령은 GPU 사용률, 메모리 사용량, 사용 가능한 메모리 양을 포함한 상세 정보를 얻을 수 있습니다. 또한, -l 옵션으로 업데이트 간격을 초 단위로 지정할 수도 있습니다.

표시 형식 및 파일 출력

기본적으로 테이블 형식으로 표시되지만, 처리하기 쉽도록 CSV 형식으로 출력할 수도 있습니다. 또한, 정보를 파일에 기록하고 싶을 경우 -f 옵션으로 출력 파일 경로를 지정할 수 있습니다.
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv
이 방법으로 GPU 사용 현황을 로그로 저장하고, 나중에 분석할 수 있습니다.

3. nvidia-smi로 프로세스 정보를 가져오기

nvidia-smi를 사용하면 현재 GPU를 사용하고 있는 프로세스 정보를 가져올 수 있습니다. 이를 통해 어떤 프로세스가 GPU 리소스를 어느 정도 사용하고 있는지 확인할 수 있습니다.

프로세스 정보 가져오기

다음 명령으로 GPU를 이용하고 있는 프로세스의 PID와 메모리 사용량을 확인할 수 있습니다.
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
이 명령은 현재 실행 중인 GPU 프로세스 목록을 반환하고, 각 프로세스의 메모리 사용량을 표시합니다.

nvidia-smi pmon 서브 명령

nvidia-smi에는 pmon이라는 서브 명령도 있어, GPU를 사용하고 있는 프로세스의 상세 정보를 가져올 수 있습니다.
nvidia-smi pmon --delay 10 -s u -o DT
이 명령은 지정한 간격으로 GPU 프로세스 정보를 표시하고, --delay 옵션으로 업데이트 간격을 초 단위로 지정합니다. 또한 표시할 정보의 종류를 선택할 수도 있습니다.

4. NVIDIA 드라이버 설치 및 동작 확인

Ubuntu에서 NVIDIA GPU를 사용하려면 적절한 NVIDIA 드라이버를 설치해야 합니다. 아래는 드라이버 설치 및 동작 확인 절차입니다.

드라이버 설치

먼저, 시스템에 적합한 NVIDIA 드라이버를 설치합니다. 아래 명령을 사용하여 권장 드라이버를 설치할 수 있습니다.
sudo apt install nvidia-driver-510
설치가 완료되면 시스템을 재시작합니다.

설치 확인

재시작 후, 아래 명령으로 드라이버가 올바르게 설치되었는지 확인합니다。
nvidia-smi
이 명령으로 드라이버 버전과 CUDA 버전이 표시되면, 올바르게 설치된 것입니다。

5. TensorFlow에서 GPU 동작 확인

GPU가 정상적으로 동작하는지 확인하기 위해, 머신러닝 프레임워크인 TensorFlow를 사용하여 테스트할 수 있습니다.

Anaconda 설치

먼저, Anaconda를 설치하고 환경을 설정합니다.
bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

TensorFlow에서 동작 확인

다음으로, TensorFlow에서 GPU가 인식되는지 확인합니다.
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
이 명령으로 GPU 디바이스가 리스트에 표시되면, TensorFlow가 GPU를 정상적으로 인식하고 있는 것입니다.

6. GPU 모니터링 및 로그 기록

nvidia-smi를 사용하면 실시간 GPU 모니터링 및 로그 기록이 가능합니다. 이를 통해 장기간에 걸친 GPU 사용 상황을 추적하고, 성능 최적화에 활용할 수 있습니다.

정기적인 모니터링

정기적인 모니터링을 설정하는 경우, nvidia-smi-l 옵션으로 업데이트 간격을 지정합니다. 또한 파일에 로그를 기록하는 것도 가능합니다.
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Python 바인딩을 통한 프로그래밍 가능한 조작

nvidia-smi에는 Python 바인딩(nvidia-ml-py)이 있으며, Python에서 프로그래밍 방식으로 GPU 정보를 가져올 수 있습니다. 이를 사용하면 보다 맞춤형 모니터링 및 제어가 가능합니다.

7. 요약

nvidia-smi는 Ubuntu에서 NVIDIA GPU의 사용 현황을 확인하고, 효과적으로 관리하기 위한 강력한 도구입니다. 이 기사에서는 nvidia-smi의 기본 사용법부터 프로세스 정보 획득, 드라이버 설치, TensorFlow에서의 동작 확인까지를 설명했습니다. GPU 성능을 최대한 끌어내어 시스템 최적화에 활용해 주세요.

관련 기사