반응형
1. 딥러닝 모델 효율적 훈련 위한, 멀티 GPU 개요
- 딥러닝에서 대규모 신경망을 효율적으로 학습하기 위해 병렬 처리 연산 가능한 GPU를 다수 연결하여 활용하는 기술
2. 멀티 GPU의 개념도 및 장점
가. 멀티 GPU 개념도 및 구성요소
| 개념도 | ![]() |
|
| 구성요소 | CPU | - GPU 간 작업 분배 및 동기화, 전체 시스템 제어 |
| RAM(주기억장치) | - GPU 연산 위한 데이터 임시 저장 캐싱 역할 | |
| VRAM(GPU 메모리) | - 각 GPU 내장 메모리, GPU 간 데이터 공유 | |
| PCIe 인터페이스 | - GPU와 CPU, GPU 간 통신 경로 | |
| 멀티 GPU 연결 기술 | - GPU 간 직접 통신 위한 기술, NVIDIA NVLink | |
| 전원 공급장치(PSU) | - 다수 GPU 높은 전력 공급(고용량, 고효율) | |
| 운영체제 | - 멀티 GPU 지원 드라이버(CUDA 등) | |
| GPU 처리 라이브러리 | - 멀티 GPU 지원 라이브러리(CUDA, cuDNN, TensorFlow-MultiGPU) | |
나. 멀티 GPU 장점
| 구분 | 장점 | 설명 |
| 성능 | 연산 속도 증가 | - 여러 GPU 병렬 작업 분담 |
| 대규모 데이터 처리 | - 대규모 데이터, 그래픽 처리 | |
| 확장성 | 작업 부하 분산 | - 여러 GPU로 작업 분산 처리 |
| 스케일업 | - 대규모 연산 환경 스케일업 가능 | |
| 전문 처리 지원 | 고해상도 그래픽 | - 3D 렌더링, 영상 인식 처리 |
| AI 고급 처리 | - 대규모 파라미터 기계 학습 |
3. 멀티 GPU 환경 구축 시 고려사항
가. 하드웨어와 소프트웨어 고려사항
| 구분 | 고려사항 | 설명 |
| 하드웨어 | 다중 GPU 장착 지원 | - 2개 이상의 PCIe x16 슬롯 |
| PCIe 대역폭 지원 | - PCIe 3.0 이상 권장 | |
| 고용량/고효율 PSU | - GPU당 수백 와트 이상 요구 | |
| 소프트웨어 | 멀티 GPU 지원 운영체제 | - 멀티 GPU 인식 및 스케쥴링 |
| CUDA/NCCL 지원 드라이버 | - CUDA Toolkit, cuDNN 설치 | |
| 병렬 연산 지원 API | - TensorFlow, PyTorch, OpenCL |
나. 관리 및 호환성 고려사항
| 구분 | 고려사항 | 설명 |
| 관리 | 전력 설계 | - 각 GPU에 안정적 전력 공급 |
| 냉각 시스템 | - 공랭 또는 수랭 시스템 설계 | |
| 케이스 통풍 | - 내부 온도 관리 케이스 설계 | |
| 호환성 | 멀티 GPU 지원 프로그램 | - 응용 프로그램의 멀티 GPU 지원 |
| 작업 분할 처리 방식 | - 데이터 벙렬 또는 작업 벙렬 처리 | |
| 메모리 공유 방식 | - GPU간 메모리 공유(NVLink) |
4. 멀티 GPU 병렬 처리 전략
| 전략 | 구성 | 설명 |
| 데이터 병렬 | [데이터 병렬] GPU1: (모델 복제) + 데이터 A 처리 GPU2: (모델 복제) + 데이터 B 처리 → 결과 파라미터 통합 및 동기화 |
- 동일 모델을 각 GPU에 복제하고 서로 다른 데이터를 각 GPU에 분산 처리 - 주기적 동기화 필요 |
| 작업 병렬 | [작업 병렬] GPU1: 모델 1층~4층 처리 GPU2: 모델 5층~8층 처리 → 계층 간 결과 전달 |
- 전체 작업을 여러 하위 작업으로 나누고 각 GPU에 서로 다른 연산 처리 - GPU 간 의존성 관리 필요 |
| 하이브리드 병렬 | [하이브리드 병렬] GPU1~2: 데이터 병렬로 1~4층 처리 GPU3~4: 데이터 병렬로 5~8층 처리 → 계층 병렬 + 데이터 병렬 조합 |
- 데이터 병렬과 작업 병렬 복잡적으로 적용 - 초대규모 모델 학습에 사용 - GPU, LLaMA |
반응형
