반응형
GPU 클러스터 구축 후 반드시 해야 할 필수 점검 절차
Kubernetes 환경에서 GPU 노드를 붙였다고 해서
**“GPU가 정상적으로 쓸 수 있다”**고 말할 수는 없습니다.
👉 진짜 검증은 CUDA 샘플이 돌아가는지 여부입니다.
이 글에서는
CUDA 샘플을 활용해 Kubernetes GPU 노드를 체계적으로 검증하는 방법을
실무 기준으로 자세히 설명합니다.
1. 왜 CUDA 샘플로 GPU 노드를 검증해야 할까?
Kubernetes + GPU 환경에서는 다음 문제가 자주 발생합니다.
GPU 노드에서 흔한 장애 유형
- GPU는 보이는데 Pod에서 안 잡힘
- nvidia-smi는 되는데 CUDA 커널 실행 실패
- 드라이버 / CUDA / 컨테이너 런타임 버전 불일치
- 멀티 GPU 노드에서 일부 GPU만 동작
📌 이런 문제는 CUDA 샘플 실행 전에는 절대 알 수 없습니다.
2. CUDA 샘플 기반 GPU 검증의 핵심 개념
검증 레벨 구분
레벨검증 내용
| L1 | GPU 장치 인식 |
| L2 | CUDA 런타임 동작 |
| L3 | 커널 실행 |
| L4 | 메모리 전송 성능 |
| L5 | 멀티 GPU / 병렬 처리 |
👉 CUDA 샘플은 L1 ~ L5를 전부 커버
3. Kubernetes GPU 노드 기본 구성 요건
CUDA 샘플 검증 전 필수 조건입니다.
노드 레벨
- NVIDIA GPU 장착
- NVIDIA Driver 설치
- CUDA 호환 드라이버 버전
클러스터 레벨
- nvidia-device-plugin DaemonSet
- containerd or docker + NVIDIA runtime
- GPU 리소스 노출 확인
kubectl describe node | grep nvidia.com/gpu
출력 예:
Capacity: nvidia.com/gpu: 4
4. CUDA 샘플용 테스트 컨테이너 이미지
권장 이미지
nvidia/cuda:<CUDA_VERSION>-devel-ubuntu22.04
예:
nvidia/cuda:12.3.2-devel-ubuntu22.04
👉 devel 이미지는 CUDA 샘플 컴파일 가능
5. GPU 검증용 Kubernetes Pod YAML
CUDA 샘플 테스트 Pod 예제
apiVersion: v1
kind: Pod
metadata:
name: cuda-sample-test
spec:
restartPolicy: Never
containers:
- name: cuda-test
image: nvidia/cuda:12.3.2-devel-ubuntu22.04
command: ["/bin/bash", "-c"]
args:
- |
nvidia-smi && \
cd /usr/local/cuda/samples/1_Utilities/deviceQuery && \
make && ./deviceQuery
resources:
limits:
nvidia.com/gpu: 1
kind: Pod
metadata:
name: cuda-sample-test
spec:
restartPolicy: Never
containers:
- name: cuda-test
image: nvidia/cuda:12.3.2-devel-ubuntu22.04
command: ["/bin/bash", "-c"]
args:
- |
nvidia-smi && \
cd /usr/local/cuda/samples/1_Utilities/deviceQuery && \
make && ./deviceQuery
resources:
limits:
nvidia.com/gpu: 1
6. 1단계 검증: GPU 인식 확인 (deviceQuery)
실행 결과 예시
Detected 1 CUDA Capable device(s) Device 0: "NVIDIA A100-SXM4-40GB" CUDA Driver Version / Runtime Version: 12.3 / 12.3 Result = PASS
이 단계에서 확인하는 것
- GPU 모델
- Compute Capability
- CUDA Driver / Runtime 일치 여부
- PASS 여부
❌ FAIL 시 원인
- 드라이버 버전 불일치
- device-plugin 오류
- GPU 런타임 미설정
7. 2단계 검증: CUDA 커널 실행 (vectorAdd)
cd /usr/local/cuda/samples/0_Introduction/vectorAdd make ./vectorAdd
정상 출력:
Test PASSED
👉 GPU 커널 실행 가능 여부 검증
8. 3단계 검증: 메모리 대역폭 테스트 (bandwidthTest)
cd /usr/local/cuda/samples/1_Utilities/bandwidthTest make ./bandwidthTest
출력 예:
Device to Device Bandwidth: 1450 GB/s
활용 포인트
- GPU 성능 저하 감지
- PCIe / NVLink 정상 여부 확인
- 노드 간 성능 편차 분석
9. 멀티 GPU 노드 검증 시나리오
GPU 개수 확인
nvidia-smi -L
Kubernetes GPU 할당 테스트
resources: limits: nvidia.com/gpu: 2
확인 포인트
- Pod 내부에서 2개 GPU 인식 여부
- deviceQuery에서 Device 0, 1 출력
- GPU 간 간섭 여부
10. GPU 노드 검증 자동화 (운영 관점)
DaemonSet 기반 자동 검증
- 신규 GPU 노드 조인 시 자동 실행
- 결과를 Prometheus / Loki로 수집
검증 항목 체크리스트
- deviceQuery PASS
- vectorAdd PASS
- bandwidth 기준치 이상
- GPU 메모리 에러 없음
11. GPUaaS / 사내 AI 플랫폼에서의 활용
GPUaaS 표준 검증 플로우
노드 추가 → CUDA 샘플 검증 → 성능 기준 통과 → GPU Pool 편입
실무 효과
- GPU 장애 사전 차단
- 사용자 불만 감소
- SLA 기반 GPU 제공 가능
12. CUDA 샘플 + Kubernetes 검증 요약
항목의미
| deviceQuery | GPU & CUDA 정상 여부 |
| vectorAdd | 커널 실행 검증 |
| bandwidthTest | 성능 기준 검증 |
| Kubernetes Pod | 실제 운영 환경 동일 |
| 자동화 | GPUaaS 필수 요소 |
13. 마무리
“GPU가 있다” ≠ “GPU를 쓸 수 있다”
Kubernetes 환경에서는
CUDA 샘플을 통과한 GPU만이 진짜 GPU 노드입니다.
CUDA 샘플 기반 검증은
- 사내 GPU 플랫폼
- AI/ML 인프라
- GPUaaS 운영
모두에서 표준 절차로 가져가야 합니다.
반응형
'[GPUaaS]' 카테고리의 다른 글
| [DCGM 진단이란?] NVIDIA 공식 헬스 체크 도구 (0) | 2026.01.10 |
|---|---|
| [GPU 장애] 유형별 원인 분석 리포트 (0) | 2026.01.10 |
| [GPU 검증 결과] 월별 GPU 리포트 자동 생성 (2) | 2026.01.10 |
| [대규모 AI 서비스] 운영을 위한 Kubernetes GPU 클러스터 도입기 (1) | 2026.01.09 |
| CUDA 샘플(CUDA Samples)이란? (0) | 2026.01.09 |
| [중요][NCP] Kubernetes Service 첫 걸음, WordPress 시작 해보기! (1) | 2026.01.09 |
| 멀티모달 AI란 무엇인가? (1) | 2026.01.08 |
| [네이버클라우드플랫폼] 쿠버네티스 서비스 활용하기 (OLD) (1) | 2026.01.08 |
댓글