프리필-디코드 분리(PD Disaggregation): LLM 서빙 아키텍처의 물리적 분리와 KV 캐시 전송
요약
LLM 추론의 프리필(prefill) 단계와 디코드(decode) 단계는 물리적으로 완전히 다른 하드웨어 요구사항을 갖는다. 프리필은 컴퓨트 제한(compute-bound)이고 디코드는 메모리 대역폭 제한(memory-bound)이다. 그런데 두 단계를 같은 GPU 풀에서 공동 실행(co-location)하면, 각자의 최적 배치 크기가 서로를 방해하고 GPU 활용률이 낮아진다. 프리필-디코드 분리(PD Disaggregation)는 두 단계를 물리적으로 다른 GPU 클러스터에 배치하고, KV 캐시를 네트워크로 전송함으로써 이 구조적 긴장을 해소한다. 2026년 들어 DeepSeek, NVIDIA Dynamo, vLLM, SGLang이 이 방식을 프로덕션 기본 아키텍처로 채택했다.
1. 왜 공동 실행이 비효율적인가
두 단계의 물리적 불일치
이전 장(168)에서 확인했듯이, 프리필과 디코드는 Roofline 모델 상 전혀 다른 위치에 있다.
| 단계 | Arithmetic Intensity | 제한 요소 | 최적 배치 크기 |
|---|---|---|---|
| 프리필 | 수백 FLOP/byte (긴 프롬프트 기준) | 컴퓨트 | 소규모 (1–16) |
| 디코드 | 1–5 FLOP/byte | 메모리 대역폭 | 대규모 (64–512+) |
공동 실행 서버에서는 한 GPU가 두 단계를 번갈아 처리해야 한다. 디코드를 많이 넣으면 프리필의 TTFT(Time to First Token)가 길어지고, 프리필을 우선하면 디코드 배치가 작아져 TBT(Time Between Tokens)가 불안정해진다. 이를 프리필-디코드 간섭(prefill-decode interference)이라 한다.
공동 실행의 결과
- 디코드 배치 크기가 줄어들어 GPU HBM 대역폭의 일부만 활용
- 프리필이 끼어들어 디코드 레이턴시가 급등(디코드 preemption)
- 프리필-디코드 비율이 워크로드마다 달라 정적 배분이 어려움
프리필
프리필
2. PD Disaggregation 아키텍처
기본 구조
KV 캐시 전송: 병목이자 핵심
프리필이 완료되면 해당 요청의 KV 캐시(히든 레이어 어텐션 상태 전체)를 디코드 풀의 GPU 메모리로 전송해야 한다. 70B 모델, 시퀀스 4K 토큰 기준 KV 캐시 크기는 대략 4–8 GB 수준이다(레이어 수·헤드 수·정밀도에 따라 다름). 이 전송이 느리면 분리의 이득이 사라진다.
전송 지연(transfer latency) < 디코드 1스텝 지연(TBT) 이 되어야 사용자 경험 저하 없이 분리가 의미를 갖는다.
3. NIXL: KV 캐시 전송 표준 라이브러리
NVIDIA가 GTC 2025에서 오픈소스로 공개한 NIXL(NVIDIA Inference Xfer Library)은 GPU-to-GPU, GPU-to-NVMe KV 캐시 전송을 추상화한 라이브러리다. vLLM, SGLang, TensorRT-LLM, NVIDIA Dynamo 모두 NIXL을 KV 전송 커넥터로 채택했다.
NIXL 지원 백엔드
| 백엔드 | 프로토콜 | 레이턴시 특성 | 대역폭 |
|---|---|---|---|
| RDMA / InfiniBand | UCX | 마이크로초 단위 | 400 Gbps+ |
| RoCE | UCX | 마이크로초 단위 | 100–400 Gbps |
| TCP 폴백 | TCP/IP | 밀리초 단위 | 네트워크 링크 속도 |
| NVMe-oF | NVMe over Fabrics | 수십 마이크로초 | 수십 GB/s |
| S3 호환 오브젝트 스토리지 | HTTP | 수십 밀리초 | 환경 의존 |
프로덕션 환경(GPU 클러스터 내)에서는 InfiniBand RDMA가 표준이다. 온프레미스가 아닌 클라우드 환경에서는 고속 이더넷(100GbE RoCE)이 현실적 대안이다.
NIXL의 동작 방식
KV 캐시 HBM에 상주
src GPU → dst GPU
KV 캐시 수신 완료
토큰 생성 시작
NIXL은 CPU를 거치지 않는 Zero-Copy RDMA를 사용해 CPU 오버헤드 없이 GPU HBM 간 직접 전송한다. KV 캐시는 (layer, head, seq_pos, dim) 텐서 형태로 전송되며, 수신 측 HBM의 미리 할당된 슬롯에 바로 써진다.
4. 프로덕션 사례
DeepSeek V3 / R1
DeepSeek은 기술 보고서에서 V3와 R1의 프로덕션 서빙이 프리필-디코드를 별도 GPU 클러스터에서 운영한다고 공개했다. 프리필 클러스터는 텐서 병렬(TP)을 높여 긴 프롬프트를 빠르게 처리하고, 디코드 클러스터는 Pipeline Parallelism과 대규모 배치를 유지한다.
NVIDIA Dynamo 1.0 (2026)
GTC 2026에서 발표된 Dynamo 1.0은 PD Disaggregation을 기본 아키텍처로 채택했다. GB200 NVL72(Blackwell) 기준으로 광역 전문가 병렬(Expert Parallelism)과 결합 시 7× 처리량 향상을 보고했다. Dynamo는 vLLM과 TRT-LLM, SGLang을 백엔드로 지원하며 NIXL로 KV 전송을 처리한다.
AWS + Cerebras (2026년 3월)
AWS는 2026년 3월 Cerebras와 파트너십을 맺어 Amazon Bedrock에 분리 추론을 도입했다. Trainium이 프리필을 담당하고, Cerebras CS-3가 디코드를 담당하는 이기종 하드웨어 분리 구조다. 디코드 단계에 특화된 WSE(Wafer Scale Engine)의 메모리 대역폭을 최대한 활용한다.
llm-d (CNCF 기증, KubeCon Europe 2026)
CNCF에 기증된 llm-d는 Kubernetes 네이티브 분리 추론 오케스트레이터다. 기본 설정에서 PD Disaggregation을 활성화하면 튜닝 없이 25% 처리량 향상을 확인했다고 보고했다. KV 스케줄러가 요청별 KV 전송 라우팅과 디코드 노드 선택을 담당한다.
5. 핵심 구현 결정과 트레이드오프
프리필 풀 : 디코드 풀 비율
트래픽 패턴에 따라 최적 비율이 달라진다. 긴 프롬프트(RAG, 코드 생성)는 프리필이 상대적으로 오래 걸리므로 프리필 풀을 늘려야 한다. 짧은 프롬프트 대화형 워크로드는 디코드 풀 비율이 높다.
프리필 풀 GPU 수 평균 TTFT (목표 SLO 내)
디코드 풀 GPU 수 평균 TBT (최대 배치로 BW 포화)실제 클러스터에서는 자동 스케일링이 필요하다. llm-d는 HPA를 통해 각 풀을 독립적으로 스케일한다.
KV 전송 지연 예산
| 모델 크기 | KV 캐시 크기 (4K ctx, BF16) | InfiniBand 400G 전송 | 허용 TBT |
|---|---|---|---|
| 7B | ~0.5 GB | ~10 ms | ≥ 20 ms |
| 70B | ~4–8 GB | ~80–160 ms | ≥ 150 ms |
| 405B | ~20–40 GB | ~400–800 ms | Open question |
405B 급 초대형 모델은 KV 전송이 디코드 TBT보다 길어질 수 있어, 청크 전송(chunked KV transfer)이나 전송 중 디코드 시작이 필요하다.
병렬 전략의 독립성
분리 아키텍처의 또 다른 장점은 프리필과 디코드가 서로 다른 병렬 전략을 사용할 수 있다는 점이다.
| 단계 | 권장 병렬 전략 | 이유 |
|---|---|---|
| 프리필 | 텐서 병렬(TP) 높음 | 입력 길이에 따른 연산량 처리 |
| 디코드 | 파이프라인 병렬(PP) + 배치 최대화 | KV 캐시 분산, 대역폭 포화 |
6. 멀티턴 agentic 워크로드에서의 확장
단순 프리필-디코드 분리에서 한 걸음 더 나아간 시스템이 등장하고 있다.
RadixCache + 델타 KV 전송: SGLang의 RadixCache를 디코드 노드에 적용하면, 멀티턴 대화에서 공유 프리픽스(시스템 프롬프트 등)의 KV를 재활용할 수 있다. 프리필 완료 후 전체 KV를 전송하는 대신, 이전 턴 이후의 델타 KV만 전송하면 전송량이 수십 배 줄어든다.
MegaScale-Infer(ByteDance): 디코드 단계 내에서 Attention 연산과 FFN 연산을 다시 분리해, 각각을 다른 GPU에 배치하는 극단적 분리를 구현했다. 근 10,000 GPU 규모에서 운영 중이다.
7. 운영 체크리스트
- [ ] 네트워크 토폴로지 확인: 프리필 노드와 디코드 노드 간 InfiniBand / RoCE 링크 존재 여부
- [ ] NIXL 버전 정합성: vLLM, SGLang, TRT-LLM 버전별 NIXL 호환성 매트릭스 확인
- [ ] KV 캐시 크기 사전 계산: 모델별·컨텍스트 길이별 KV 크기와 전송 지연 예산 도출
- [ ] 풀 비율 자동 조정: HPA 또는 KEDA를 통해 워크로드별 프리필/디코드 풀 크기 조정
- [ ] 전송 실패 처리: 네트워크 장애 시 프리필 재시도 없이 fallback 경로(공동 실행 노드) 확보
- [ ] 모니터링 지표 추가:
prefill_e2e_latency,kv_transfer_latency,decode_batch_size,ttft_p99 - [ ] 멀티턴 RadixCache 고려: 아젠틱 워크로드라면 디코드 노드 RadixCache 활성화 여부 결정
References
- Prefill/decode disaggregation reaches production: state of play, May 2026
- Prefill/Decode Disaggregation: Why Production LLM Inference Is Splitting Onto Separate Hardware — DigitalOcean
- NVIDIA NIXL and Disaggregated Inference: Move KV Caches Across GPUs at Wire Speed
- Not All Prefills Are Equal: PPD Disaggregation for Multi-turn LLM Serving (arXiv:2603.13358)
- SGLang Disaggregation Roadmap 2026 Q2 — GitHub
- FlowKV: A Disaggregated Inference Framework with Low-Latency KV Cache Transfer (arXiv:2504.03775)
- TPLA: Tensor Parallel Latent Attention for Efficient Disaggregated Prefill and Decode Inference (arXiv:2508.15881)