PD Disaggregation (Prefill–Decode 분리)
[!tldr] 업무 관점 takeaway Prefill GPU와 Decode GPU를 분리하는 분산 추론 구조. 분리하면 KV Cache를 노드 간에 옮겨야 한다 → [[LMCache-아키텍처|LMCache Transport Mode]]가 존재하는 이유. 우리 [[Mission|미션]]에서는 Storage Mode가 주력이지만, PD Disaggregation 환경의 로컬 SSD 중간 버퍼(prefill 결과를 임시 보관)는 FDP 적용 가능 부수적 타겟.
왜 분리하는가 — Prefill ≠ Decode
| Prefill | Decode | |
|---|---|---|
| 동작 | 입력 전체 토큰 attention 계산 | 토큰 하나씩 생성 |
| 계산량 | 많음 (batch 크기↑로 efficiency) | 적음 |
| 특성 | throughput-oriented | latency-oriented |
| GPU 점유 | 길게 점유 | 짧고 자주 |
같은 GPU에서 처리하면:
- Prefill이 GPU를 길게 점유
- Decode 요청 대기 → [[TTFT-ITL|TTFT]] 폭증
→ 분리해서 각 워크로드에 맞는 GPU 자원 할당.
분리하면 생기는 문제 — KV Cache 전송 필요
Prefill GPU가 만든 KV Cache를 Decode GPU가 받아야 함.
[Prefill GPU]
│ KV Cache 전송 (P2P)
▼
[Decode GPU]
전송 수단:
- NIXL (NVIDIA Inference Xfer Library) — P2P 저지연
- RDMA / InfiniBand
- 또는 로컬 SSD를 중간 버퍼로
LMCache와의 관계
[[LMCache-아키텍처|LMCache Mode 2 (Transport Mode)]]가 정확히 이 기능. NIXL 같은 P2P 통신으로 노드 간 KV 전송.
[!note] FDP 관점에서는 부수적 Transport Mode는 네트워크 중심 → FDP 직접 적용 포인트 적음. 단, 로컬 SSD를 중간 버퍼로 쓰는 경우(짧은 lifetime KV) FDP RUH로 hot bucket에 격리하면 의미 있음.
평가 결과
LMCache 논문 기준 PD 분리 + chunk 전송:
- TTFT 1.53–1.84× ↓
- ITL 1.12–1.66× ↓
(page-by-page 전송 대비 chunk batched 전송만으로 큰 차이)
관련 페이지
- [[KV-Cache]] — 전송 대상
- [[LMCache-개요]] — Transport Mode 제공
- [[LMCache-아키텍처]] — Mode 2 설명
- [[vLLM-PagedAttention]] — chunk 전송이 왜 page보다 효율적인가
- [[TTFT-ITL]] — 분리로 개선되는 지표