인프라 엔지니어 관점에서 AI 워크로드를 어떻게 지원하는가
1. GPU vs CPU
1.1 왜 GPU인가
| CPU | GPU |
|---|
| 코어 수 | 8~128 (강한 코어) | 수천~수만 (약한 코어) |
| 적합한 작업 | 복잡한 순차 로직 | 대량 병렬 행렬 연산 |
| AI에서의 역할 | 데이터 전처리, 오케스트레이션 | ✅ 학습과 추론 |
Neural Network의 핵심 연산 = 행렬 곱셈 → 대량 병렬 처리에 적합 → GPU가 CPU 대비 수십~수백 배 빠름
1.2 NVIDIA 생태계
| 컴포넌트 | 역할 |
|---|
| CUDA | GPU 프로그래밍 플랫폼 (사실상 표준) |
| cuDNN | 딥러닝 연산 최적화 라이브러리 |
| TensorRT | 추론 최적화 엔진 (모델 컴파일) |
| NCCL | 멀티 GPU 통신 라이브러리 |
| NVLink/NVSwitch | GPU 간 고속 인터커넥트 |
1.3 GPU 세대별 비교
| GPU | 세대 | FP16 TFLOPS | 메모리 | 용도 |
|---|
| A100 | Ampere (2020) | 312 | 40/80GB HBM2e | 학습+추론 (현재 워크호스) |
| H100 | Hopper (2022) | 990 | 80GB HBM3 | ✅ 대규모 학습 |
| H200 | Hopper (2024) | 990 | 141GB HBM3e | 대형 모델 추론 (메모리↑) |
| B200 | Blackwell (2024) | 2,250 | 192GB HBM3e | 차세대 |
| RTX 4090 | Ada (2022) | 165 | 24GB GDDR6X | 개인/소규모 학습, QLoRA |
2. 학습 vs 추론 인프라
| 학습 (Training) | 추론 (Inference) |
|---|
| GPU 수 | 수십~수천 대 | 1~수 대 |
| 병목 | 컴퓨팅 (TFLOPS) | 메모리 (KV Cache) |
| 시간 | 수일~수주 | 밀리초~초 |
| 최적화 | 데이터 병렬, 모델 병렬 | 양자화, 배칭, 캐싱 |
| 비용 | 💰💰💰 | 💰 |
3. 분산 학습
단일 GPU로 학습할 수 없는 대형 모델을 여러 GPU에 분산하여 학습.
| 전략 | 분산 대상 | 설명 |
|---|
| Data Parallel | 데이터 | 같은 모델을 여러 GPU에 복사, 데이터를 나눠 학습, 그래디언트 동기화 |
| Model Parallel | 모델 | 모델의 레이어를 GPU에 나눠 배치 |
| Pipeline Parallel | 모델 (단계별) | 레이어 그룹을 파이프라인 스테이지로 분할 |
| Tensor Parallel | 모델 (연산별) | 하나의 레이어 내부 행렬을 분할 |
실전에서는 3D Parallelism (Data + Pipeline + Tensor)을 조합하여 사용.
4. 추론 최적화
| 기법 | 설명 | 효과 |
|---|
| 양자화 (Quantization) | FP16 → INT8/INT4로 정밀도 낮춤 | 메모리 2~4배 절약 |
| GPTQ | Post-training 양자화 | 4-bit, 성능 저하 최소 |
| AWQ | 활성화 기반 양자화 | GPTQ보다 약간 우수 |
| KV Cache 최적화 | PagedAttention으로 메모리 효율화 | 처리량 2~4배 |
| Continuous Batching | 요청을 동적으로 배치 처리 | 처리량 향상 |
| Speculative Decoding | 작은 모델이 초안, 큰 모델이 검증 | 속도 2~3배 |
vLLM — 추론 서빙 표준
| 기능 | 설명 |
|---|
| PagedAttention | KV Cache를 페이지 단위로 관리 → 메모리 효율 |
| Continuous Batching | 요청을 동적으로 묶어 처리 |
| OpenAI 호환 API | 코드 수정 없이 OpenAI API 대체 가능 |
| 다양한 모델 | Llama, Mistral, Qwen 등 대부분 지원 |
5. 클라우드 GPU
| 클라우드 | 인스턴스 | GPU | 용도 |
|---|
| AWS | p5.48xlarge | H100 ×8 | 대규모 학습 |
| AWS | g5.xlarge | A10G ×1 | 추론 |
| Azure | ND H100 v5 | H100 ×8 | 학습 |
| GCP | a3-highgpu-8g | H100 ×8 | 학습 |
| Lambda Labs | 다양 | A100/H100 | ✅ AI 전문, 저렴 |
| RunPod | 다양 | 소비자~데이터센터 | ✅ 유연, 시간 과금 |
6. GPU 가상화
| 기술 | 설명 | Proxmox 관련 |
|---|
| PCI Passthrough | GPU를 VM에 직접 할당 (1:1) | ✅ 지원 (IOMMU 필요) |
| vGPU (NVIDIA GRID) | GPU를 분할하여 여러 VM에 공유 | 라이선스 필요 |
| MIG (Multi-Instance GPU) | A100/H100을 물리적으로 분할 | ✅ 하드웨어 격리 |
| SR-IOV | NIC처럼 GPU를 가상 기능으로 분할 | 제한적 지원 |
💡 인프라 엔지니어 관점에서 GPU 가상화는 점점 중요해지고 있음. AI 워크로드가 VM/컨테이너 환경에서 실행되어야 하므로, PCI Passthrough와 MIG 설정 능력이 필요함. Proxmox #2에서 다룬 IOMMU/Passthrough가 여기서 직접 연결됨.
7. 온프레미스 AI 서버
| 구성 요소 | 고려사항 |
|---|
| GPU 서버 | GPU 수, 메모리, NVLink 유무 |
| 네트워크 | GPU 간 통신: InfiniBand/RoCE (100~400Gbps) |
| 스토리지 | 학습 데이터 로딩 속도: NVMe, 분산 파일시스템 |
| 전력/냉각 | H100 1대 = 700W. 8대 = 5.6kW + 냉각 |
| 관리 | Kubernetes + GPU Operator, Slurm |
다음 글
→ MLOps 기초
📝 참고 자료