본문으로 건너뛰기

GPU 가상머신에서 ML 학습 시작하기

목표

이 튜토리얼을 완료하면:

  • ECI GPU 가상머신을 생성하고 SSH로 접속
  • CUDA 환경을 확인하고 PyTorch로 GPU 연산 검증
  • 간단한 모델 학습을 실행하고 체크포인트를 저장

사전 준비

  • ECI 계정 및 GPU 인스턴스 할당량
  • SSH 클라이언트 (macOS/Linux 기본 제공, Windows는 WSL 또는 PuTTY)

1단계: GPU 가상머신 생성

  1. 컴퓨트 > 가상머신 목록에서 가상 머신 생성을 클릭합니다.

  2. 다음 설정을 사용합니다.

    항목권장값
    디스크 타입이미지
    이미지CUDA·PyTorch 사전 설치 이미지 (Ubuntu + CUDA) 선택
    인스턴스 타입G-NHHS-80 (H100 80GB SXM × 1)
    공인 IP새로 생성
    사용자명·비번1단계에서 입력 (소문자 시작, 비번 10자·3종 이상)
  3. 생성을 클릭하고 상태가 실행 중이 될 때까지 기다립니다 (대개 1~2분).


2단계: SSH 접속 및 환경 확인

ssh <사용자명>@<PUBLIC_IP>
비밀번호 인증이 안 되면

Ubuntu 기본 cloud-init은 비밀번호 SSH를 비활성화합니다. 가상머신 생성 시 초기 스크립트에 SSH 비번 활성화 명령을 포함하거나, 웹 콘솔로 접속해 설정을 변경하세요. (SSH 접속)

GPU와 CUDA를 확인합니다.

nvidia-smi
# GPU 이름, VRAM, 드라이버 버전 확인

python3 -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
# True NVIDIA H100 80GB HBM3

3단계: 간단한 학습 실행

# train.py
import torch
import torch.nn as nn

device = torch.device("cuda")

# 간단한 선형 회귀 모델
model = nn.Linear(10, 1).to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.MSELoss()

for epoch in range(100):
x = torch.randn(64, 10).to(device)
y = torch.randn(64, 1).to(device)

pred = model(x)
loss = criterion(pred, y)

optimizer.zero_grad()
loss.backward()
optimizer.step()

if epoch % 10 == 0:
print(f"Epoch {epoch}: loss={loss.item():.4f}")

# 체크포인트 저장
torch.save({
'epoch': epoch,
'model_state_dict': model.state_dict(),
'optimizer_state_dict': optimizer.state_dict(),
}, 'checkpoint.pt')
print("체크포인트 저장 완료")
python3 train.py

4단계: GPU 사용률 모니터링

별도 터미널에서 GPU 사용량을 실시간으로 확인합니다.

watch -n 1 nvidia-smi

ECI 포털에서도 가상머신 상세 페이지의 메트릭 탭에서 GPU 사용률·VRAM·CPU·메모리를 그래프로 확인할 수 있습니다. 여러 가상머신을 동시에 비교하려면 메트릭 탐색기를 사용하세요.


다음 단계