GPU그래픽 처리 장치
쉽게 이해하기
AI 모델의 핵심 연산은 큰 행렬 곱, 정규화, 샘플링처럼 같은 패턴의 숫자 계산을 매우 많이 반복하는 일이다. CPU는 복잡한 제어 흐름에 강하지만, GPU는 수천 개 경량 스레드가 같은 명령을 서로 다른 데이터에 적용하는 SIMT 구조라 대량 텐서 연산에 맞다. HBM은 GPU 가까이에 붙은 초고속 메모리로, 모델 가중치와 KV 캐시를 계속 읽어야 하는 추론에서 체감 성능을 좌우한다.
LLM 서빙에서는 프리필과 디코드를 나눠 봐야 한다. 프리필은 긴 입력 문맥을 한 번에 처리하므로 연산량이 크고, 디코드는 새 토큰을 하나씩 만들면서 가중치와 KV 캐시를 계속 훑기 때문에 메모리 대역폭과 GPU 간 통신이 더 자주 병목이 된다. 그래서 "GPU가 몇 장인가"보다 "모델이 HBM에 맞는가", "샤드가 같은 NVLink/NVSwitch 도메인에 있는가", "네트워크 경로가 RDMA/GPUDirect RDMA를 쓰는가"가 실제 지연을 더 잘 설명할 때가 많다.
비유와 예시
- 대형 문서 LLM: 첫 통과(프리필)는 수학이 많고, 이후 토큰 생성(디코드)은 메모리 대역폭이 관건.
- 스트리밍 ASR→보코더: 전반부 연산 집약, 후반부 대역폭 민감. GPU에서 파이프라인 분리로 지연을 낮춘다.
- 임베딩 대량 점수화: 동일 내적/정규화를 병렬화해 야간 배치를 단축.
한눈에 비교
| GPU | 전용 AI 가속기 | |
|---|---|---|
| 생태계/툴링 | 넓고 성숙 | 플랫폼별 편차 큼 |
| 지연/처리량 | 큰 배치에서 처리량 유리 | 소배치 지연 최적 설계 사례 |
| 확장 | NVLink/NVSwitch 스케일업 | 특화 토폴로지 중심 |
어디서 왜 중요한가
- 모델 크기와 메모리: 가중치+KV 캐시+배치 여유가 HBM에 들어가야 안정적 서빙이 가능하다.
- 처리량 vs 지연: 배치를 키우면 토큰/초는 오르지만 디코드 p95/p99가 나빠질 수 있어 마이크로배치와 큐잉 정책이 필요하다.
- 멀티 GPU 배치: 텐서 병렬/파이프라인 병렬을 쓰면 연산은 나뉘지만 집합 통신이 생긴다. 샤드를 같은 NVLink/NVSwitch 섬에 묶으면 동기화 시간이 줄어든다.
- 클러스터 네트워크: 노드 밖 데이터를 자주 주고받는 RAG, 멀티모달, 분산 추론에서는 SR-IOV, RDMA, GPUDirect RDMA 같은 낮은 지연 경로가 꼬리 지연을 줄인다.
- 비용 관리: 가장 비싼 GPU가 항상 정답은 아니다. 작은 모델·짧은 문맥·낮은 QPS는 CPU나 작은 가속기, 큰 모델·긴 문맥·높은 QPS는 GPU 풀이 유리할 수 있다.
자주 하는 오해
- ❌ GPU만 늘리면 지연이 준다 → ✅ 통신이 병목이면 p99가 악화될 수 있다.
- ❌ GPU 메모리 용량만 보면 된다 → ✅ 대역폭, 인터커넥트, 커널 효율, 큐잉까지 같이 봐야 한다.
- ❌ 하나의 벤치마크로 모두 예측 가능 → ✅ 모델·배치·시퀀스 길이·정밀도·토폴로지에 따라 병목이 달라진다.
대화에서는 이렇게
- "디코드는 bandwidth-bound라 마이크로배치로 제어합시다."
- "샤드를 동일 NVLink 도메인에 고정하고 교차 노드는 피합시다."
- "비동기 복사로 전송과 연산을 겹쳐 메모리 스톨을 숨기죠."
함께 읽으면 좋은 용어
참고 자료
- CUDA C++ Programming Guide
커널·워프·블록·메모리 계층 등 CUDA 실행 모델 기준 문서.
- CUDA C++ Best Practices Guide
점유율·메모리 결합·전송 최적화 등 성능 튜닝 지침.
- NVIDIA Collective Communication Library Documentation
멀티 GPU 집합 통신과 토폴로지 운용 기준.
- GPUDirect RDMA Documentation
GPU 메모리와 NIC 간 저지연 데이터 경로 설명.
- NVIDIA Inference Reference Architecture
추론 배치·네트워크·로컬리티 운영 검증 패턴.