Amazon EC2의 GPU 개발환경 한 번에 확인하는 쉘 스크립트

Amazon EC2의 GPU 개발환경 한 번에 확인하는 쉘 스크립트

Amazon EC2의 GPU 개발 환경을 한 번에 확인할 수 있는 쉘 스크립트를 통해 딥러닝 환경 점검을 보다 효율적으로 수행하는 방법을 소개합니다.
2026.03.11

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번 글에서는 Amazon EC2의 GPU 개발 환경을 한 번에 확인할 수 있는 쉘 스크립트를 통해 딥러닝 환경 점검을 보다 효율적으로 수행하는 방법을 소개합니다.

EC2 OS 정보

EC2의 운영체제는 Ubuntu 24.04 버전을 사용하고 있으며, 해당 인스턴스는 GPU 기반 딥러닝 환경을 빠르게 구성할 수 있도록 Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 24.04) 이미지를 기반으로 생성했습니다.

이 AMI는 GPU 워크로드 실행에 필요한 기본 구성 요소들이 미리 포함되어 있어, 딥러닝 및 머신러닝 환경을 보다 쉽게 구축할 수 있습니다.

예를 들어 다음과 같은 구성 요소들이 포함되어 있습니다.

  • NVIDIA GPU Driver
  • CUDA
  • GPU 연산을 위한 기본 라이브러리 및 개발 환경
  • Docker
  • Python

스크립트 준비

NVIDIA Driver부터 시작해서 GPU까지 확인하는 코드입니다.

#!/bin/bash
echo ""
echo "【1. NVIDIA Driver】"
nvidia-smi
echo ""
nvidia-smi --query-gpu=name,driver_version --format=csv

echo ""
echo "======================================"
echo "【2. Docker】"
docker --version
docker info | grep -E "Server Version|Storage Driver"

echo ""
echo "======================================"
echo "【3. Docker Compose】"
docker compose version
# 오래된 버전의 경우
docker-compose --version 2>/dev/null || echo "docker-compose (standalone) not found"

echo ""
echo "======================================"
echo "【4. AWS CLI】"
aws --version

echo ""
echo "======================================"
echo "【5. NVIDIA Container Toolkit】"
nvidia-ctk --version
# 또는
dpkg -l | grep -i nvidia-container

echo ""
echo "======================================"
echo "【6. CUDA】"
nvcc --version 2>/dev/null || echo "nvcc not found"
cat /usr/local/cuda/version.txt 2>/dev/null || \
cat /usr/local/cuda/version.json 2>/dev/null || \
ls /usr/local/ | grep cuda

echo ""
echo "======================================"
echo "【7. Python】"
python3 --version
which python3

echo ""
echo "======================================"
echo "【8. sqlite3】"
sqlite3 --version 2>/dev/null || echo "sqlite3 not found"

echo ""
echo "======================================"
echo "【9. OS 확인】"
lsb_release -a
uname -r

echo ""
echo "======================================"
echo "【10. GPU 확인】"
lspci | grep -i nvidia

echo ""
echo "======================================"
echo "확인 완료"
echo "======================================"

스크립트 실행

vi 명령어로 sh 파일을 생성하고 권한을 할당한 다음 실행합니다.

sudo vi check_requirements.sh
sudo chmod +x check_requirements.sh
sudo ./check_requirements.sh

스크립트를 실행하면 다음과 같은 결과를 확인할 수 있습니다.

【1. NVIDIA Driver】
Wed Mar 11 01:27:06 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09             Driver Version: 580.126.09     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA L40S                    On  |   00000000:30:00.0 Off |                    0 |
| N/A   31C    P8             23W /  350W |       0MiB /  46068MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

name, driver_version
NVIDIA L40S, 580.126.09

======================================
【2. Docker】
Docker version 29.2.1, build a5c7197
 Server Version: 29.2.1
 Storage Driver: overlayfs

======================================
【3. Docker Compose】
Docker Compose version v5.1.0
docker-compose (standalone) not found

======================================
【4. AWS CLI】
aws-cli/2.33.31 Python/3.13.11 Linux/6.17.0-1007-aws exe/x86_64.ubuntu.24

======================================
【5. NVIDIA Container Toolkit】
NVIDIA Container Toolkit CLI version 1.18.2
commit: 9e88ed39710fd94c7e49fbb26d96492c45e574fb
ii  libnvidia-container-tools                   1.18.2-1                                amd64        NVIDIA container runtime library (command-line tools)
ii  libnvidia-container1:amd64                  1.18.2-1                                amd64        NVIDIA container runtime library
ii  nvidia-container-toolkit                    1.18.2-1                                amd64        NVIDIA Container toolkit
ii  nvidia-container-toolkit-base               1.18.2-1                                amd64        NVIDIA Container Toolkit Base

======================================
【6. CUDA】
nvcc not found
{
   "cuda" : {
      "name" : "CUDA SDK",
      "version" : "12.9.20250531"
   },
   "cuda_cccl" : {
      "name" : "CUDA C++ Core Compute Libraries",
      "version" : "12.9.27"
   },
   "cuda_cudart" : {
      "name" : "CUDA Runtime (cudart)",
      "version" : "12.9.79"
   },
   "cuda_cuobjdump" : {
      "name" : "cuobjdump",
      "version" : "12.9.82"
   },
   "cuda_cupti" : {
      "name" : "CUPTI",
      "version" : "12.9.79"
   },
   "cuda_cuxxfilt" : {
      "name" : "CUDA cu++ filt",
      "version" : "12.9.82"
   },
   "cuda_demo_suite" : {
      "name" : "CUDA Demo Suite",
      "version" : "12.9.79"
   },
   "cuda_gdb" : {
      "name" : "CUDA GDB",
      "version" : "12.9.79"
   },
   "cuda_nsight" : {
      "name" : "Nsight Eclipse Plugins",
      "version" : "12.9.79"
   },
   "cuda_nvcc" : {
      "name" : "CUDA NVCC",
      "version" : "12.9.86"
   },
   "cuda_nvdisasm" : {
      "name" : "CUDA nvdisasm",
      "version" : "12.9.88"
   },
   "cuda_nvml_dev" : {
      "name" : "CUDA NVML Headers",
      "version" : "12.9.79"
   },
   "cuda_nvprof" : {
      "name" : "CUDA nvprof",
      "version" : "12.9.79"
   },
   "cuda_nvprune" : {
      "name" : "CUDA nvprune",
      "version" : "12.9.82"
   },
   "cuda_nvrtc" : {
      "name" : "CUDA NVRTC",
      "version" : "12.9.86"
   },
   "cuda_nvtx" : {
      "name" : "CUDA NVTX",
      "version" : "12.9.79"
   },
   "cuda_nvvp" : {
      "name" : "CUDA NVVP",
      "version" : "12.9.79"
   },
   "cuda_opencl" : {
      "name" : "CUDA OpenCL",
      "version" : "12.9.19"
   },
   "cuda_sanitizer_api" : {
      "name" : "CUDA Compute Sanitizer API",
      "version" : "12.9.79"
   },
   "libcublas" : {
      "name" : "CUDA cuBLAS",
      "version" : "12.9.1.4"
   },
   "libcufft" : {
      "name" : "CUDA cuFFT",
      "version" : "11.4.1.4"
   },
   "libcufile" : {
      "name" : "GPUDirect Storage (cufile)",
      "version" : "1.14.1.1"
   },
   "libcurand" : {
      "name" : "CUDA cuRAND",
      "version" : "10.3.10.19"
   },
   "libcusolver" : {
      "name" : "CUDA cuSOLVER",
      "version" : "11.7.5.82"
   },
   "libcusparse" : {
      "name" : "CUDA cuSPARSE",
      "version" : "12.5.10.65"
   },
   "libnpp" : {
      "name" : "CUDA NPP",
      "version" : "12.4.1.87"
   },
   "libnvfatbin" : {
      "name" : "Fatbin interaction library",
      "version" : "12.9.82"
   },
   "libnvjitlink" : {
      "name" : "JIT Linker Library",
      "version" : "12.9.86"
   },
   "libnvjpeg" : {
      "name" : "CUDA nvJPEG",
      "version" : "12.4.0.76"
   },
   "nsight_compute" : {
      "name" : "Nsight Compute",
      "version" : "2025.2.1.3"
   },
   "nsight_systems" : {
      "name" : "Nsight Systems",
      "version" : "2025.1.3.140"
   },
   "nvidia_driver" : {
      "name" : "NVIDIA Linux Driver",
      "version" : "575.57.08"
   },
   "nvidia_fs" : {
      "name" : "NVIDIA file-system",
      "version" : "2.25.7"
   }
}

======================================
【7. Python】
Python 3.12.3
/usr/bin/python3

======================================
【8. sqlite3】
sqlite3 not found

======================================
【9. OS 확인】
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.4 LTS
Release:        24.04
Codename:       noble
6.17.0-1007-aws

======================================
【10. GPU 확인】
30:00.0 3D controller: NVIDIA Corporation AD102GL [L40S] (rev a1)

======================================
확인 완료
======================================

마무리

GPU 기반 개발 환경을 구성하다 보면 드라이버, CUDA, Docker, Python 등 여러 구성 요소가 서로 정상적으로 설치되어 있는지 확인해야 하는 경우가 많습니다.
하지만 이러한 항목들을 하나씩 확인하다 보면 시간이 많이 소요되고, 환경이 여러 대의 서버로 늘어날수록 관리가 번거로워질 수 있습니다.

이번 글에서 소개한 쉘 스크립트를 활용하면 GPU 드라이버, CUDA, Docker, Python, OS 정보 등을 한 번에 확인할 수 있기 때문에 환경 점검을 보다 빠르고 효율적으로 수행할 수 있습니다. 특히 새로운 GPU 인스턴스를 생성했을 때나, 딥러닝 개발 환경을 구축한 직후 기본 환경이 정상적으로 구성되어 있는지 검증하는 용도로 유용하게 사용할 수 있습니다.

또한 이러한 방식은 단순한 확인용 스크립트를 넘어 초기 환경 검증(Health Check) 스크립트로도 활용할 수 있기 때문에, 팀 단위 개발 환경이나 운영 환경에서도 도움이 될 수 있습니다.

GPU 인스턴스를 활용한 딥러닝 환경을 구성할 때 이번 스크립트를 참고하여 보다 빠르게 환경을 점검하고 안정적인 개발 환경을 구축해 보시기 바랍니다.

この記事をシェアする

FacebookHatena blogX

関連記事