본문으로 건너뛰기

LLM 추론을 나누면 GPU 효율이 달라진다

Prefill과 Decode를 분리하면 SLO 간섭을 줄이고 단계별 GPU 최적화를 적용할 수 있습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

분리형 추론은 Prefill과 Decode를 서로 다른 GPU 풀에서 실행하고 KV Cache를 네트워크로 전달해 TTFT와 TPOT의 간섭을 줄이는 방식입니다. 요청의 입력·출력 길이와 각 단계의 처리율을 이용해 GPU 비율 ϕ를 정하고, fabric 대역폭과 큐 버퍼가 생성되는 KV Cache 흐름을 감당해야 합니다. 충분한 부하와 안정적인 균형 추적이 가능하면 단계별 parallelism, kernel, 메모리 용량을 따로 최적화할 수 있어 통합형 추론과 동일한 기본 처리량에서 추가적인 전문화 이점을 얻습니다. 다만 GPU worker 단위의 반올림 손실, KV Cache 전송 중복, autoscaling 지연과 운영 복잡성이 실제 도입 장벽으로 남습니다.

섹션별 상세

분리형 추론은 prefill과 decode를 같은 GPU에서 번갈아 실행하는 기존 방식의 SLO 간섭을 없애기 위해 두 단계를 별도 GPU 풀로 나누는 구조입니다. Prefill은 prompt 전체를 처리해 KV cache를 만들고, decode는 이를 받아 출력 토큰을 순차적으로 생성하므로 두 작업은 계산 패턴과 병목이 서로 다릅니다. 네트워크를 통한 KV cache 전송이라는 비용을 감수하면 TTFT와 TPOT를 각각 조정할 수 있어, 충분한 부하와 구현 조건이 갖춰진 환경에서 통합형 추론보다 유리한 기반을 얻습니다.
통합형 추론에서는 Temporal disaggregation이 decode를 멈추고 새 요청의 prefill을 수행해 batch를 키우기 때문에 출력 토큰 사이의 지연이 커질 수 있습니다. Chunked prefill은 decode 요청과 일부 prompt 토큰을 하나의 heterogeneous batch에 넣지만, prefill을 NNN개 chunk로 나누면 선행 KV cache를 NNN번 전송해야 해 TPOT와 TTFT 사이에 다시 절충이 생깁니다. 분리형 구조는 prefill과 decode를 별도 풀에서 계속 실행하고 완성된 KV cache를 한 번 전달해 두 SLO의 경쟁을 줄입니다.
두 GPU 풀의 처리율을 맞추려면 요청당 prefill GPU 시간과 decode GPU 시간을 기준으로 전체 GPU를 배분해야 합니다. 입력 prompt 길이를 ISL, 출력 길이를 OSL, prefill 처리율을 rP, decode step 시간을 tstep, decode batch 크기를 B라고 하면 요청당 비용은 tP=ISL/rP와 tD=OSL·tstep/B이며, prefill GPU 비율은 ϕ=B·ISL/(B·ISL+rP·tstep·OSL)로 계산됩니다. 이 비율은 트래픽의 입력·출력 길이 분포와 각 단계의 처리 성능을 함께 반영하므로 고정된 하드웨어 분할보다 실제 요청 흐름에 맞춘 용량 조정이 필요합니다.
근거
  • Prefill GPU 비율은 ϕ=B·ISL/(B·ISL+rP·tstep·OSL)로 산출된다. ‘How to rate balance’ 절의 요청당 prefill·decode GPU 시간과 균형 배분 공식. 출처
분리형 배포가 통합형보다 뒤처지지 않으려면 GPU 수가 풀별 worker 단위로 반올림될 만큼 충분해야 하고, 네트워크 fabric이 생성되는 KV cache를 모두 운반해야 하며, 트래픽 변화에 따라 균형을 추적할 수 있어야 합니다. Prefill GPU가 nP개이고 토큰당 KV cache 크기가 κstore, prefill 토큰 처리율이 rP라면 필요한 전송률은 nP·rP·κstore이며, 이는 송신 NIC, 수신 NIC, fabric 중 가장 작은 대역폭 이하이어야 합니다. GLM-5.2와 B200 사례에서는 토큰당 95 KB, 약 40B active parameters, 4.5 PFLOP/s FP8 처리 성능으로 prefill이 초당 5.3 GB/s의 KV cache를 만들고 400 Gb/s NIC가 초당 50 GB/s를 운반하므로 링크 여유가 남습니다.
근거
  • 충분한 부하와 구현 조건이 갖춰지면 분리형 배포는 통합형 배포보다 결코 나쁘지 않다. 본문의 ‘The conditions under which we can disaggregate properly’와 ‘Why it’s strictly better, once the conditions are met’ 절에서 세 가지 조건과 전문화 이점을 연결함. 출처
트래픽 혼합이 변하면 prefill이 만드는 cache 흐름 P와 decode가 받아들이는 흐름 A 사이에 δ=P−A의 차이가 생기며, 이 차이를 큐와 autoscaling으로 흡수해야 합니다. 여유 용량 C와 초기 재고 Q0가 있는 큐는 δ>0일 때 차오르고 δ<0일 때 줄어들며, worker 시작 시간 τ가 경계에 도달하기 전에 풀 크기를 바꾸지 못하면 prefill backpressure나 빈 decode batch가 발생합니다. 따라서 더 큰 버퍼, 짧은 cold start, 안정적인 요청 라우팅, dynamo의 balance-tracking이 TTFT와 GPU 활용률을 함께 지키는 운영 조건이 됩니다.
근거
  • KV cache 전송률은 nP·rP·κstore≤min(mP·BWP,mD·BWD,BWfabric) 조건을 만족해야 한다. ‘The fabric sustains the KV cache production rate’ 절의 fabric 조건과 NIC 대역폭 공식. 출처
  • GLM-5.2는 토큰당 95 KB의 cache를 저장하고, B200의 FP8 4.5 PFLOP/s 조건에서 초당 5.3 GB/s의 cache를 생성한다. GLM-5.2와 B200을 사용한 KV cache 전송률 예시 문단. 출처
조건을 충족한 분리형 추론은 prefill GPU만 큰 activation 공간을 확보하고 decode GPU는 그 공간을 batch 확장에 사용할 수 있어 동적 메모리 활용이 달라집니다. 또한 DeepSeek’s V3처럼 prefill과 decode에 서로 다른 parallelism을 적용하고, DeepEP처럼 각 단계에 맞춘 고처리량·저지연 kernel을 따로 사용할 수 있으며, 한 단계가 다른 단계의 느린 rank를 기다리는 불균형도 줄일 수 있습니다. 통합형 배포가 가진 HBM 용량과 출력 처리량의 이점을 재계산하면 두 방식의 유효 출력량은 동일하고, 분리형 구조는 이미 존재하던 유휴 HBM을 prefill GPU에 모아 배치와 전문화를 가능하게 만드는 방식입니다.
분리형 추론의 실제 비용은 KV cache 전송 중 prefill과 decode worker 양쪽에 cache가 잠시 중복 저장되는 HBM 부담과 운영 복잡성입니다. vLLM의 NIXL connector는 전체 prefill 뒤에 전송하고, SGLang의 Mooncake 경로는 chunk 단위로 전송하지만 요청이 끝날 때까지 prefill 측 radix cache가 유지되므로 전송 창의 크기가 메모리 요구량을 결정합니다. 글은 fabric 대역폭, worker 반올림, 균형 추적이라는 조건을 통과하면 이 비용이 단계 간 간섭을 줄이고 하드웨어·parallelism·kernel 전문화를 얻는 대가로 정당화된다고 결론짓습니다.

용어 해설

분리형 추론(Disaggregated Inference)
Prefill과 decode를 서로 다른 GPU 풀에서 실행하고, prefill이 만든 KV cache를 네트워크로 decode 풀에 전달하는 추론 구조입니다. 두 단계의 자원과 SLO를 독립적으로 조정해 서로의 지연 영향을 줄이는 방식입니다.
Prefill
사용자 prompt 전체를 한 번에 처리해 각 토큰의 KV cache를 생성하는 단계입니다. 계산량이 크고 메모리 접근은 상대적으로 적어 입력 토큰 처리율이 핵심 성능 지표가 됩니다.
Decode
생성된 KV cache를 이용해 출력 토큰을 한 개씩 순차적으로 생성하는 단계입니다. 실행 중인 sequence를 batch로 묶어 처리하며, batch 크기와 step 시간이 TPOT와 출력 처리량을 결정합니다.
KV Cache
Attention 계산에 필요한 이전 토큰의 key와 value를 저장하는 메모리입니다. Prefill에서 요청 전체에 대해 생성되고 decode에서 반복 사용되므로, 분리형 추론에서는 두 GPU 풀 사이를 이동하는 데이터가 됩니다.
첫 토큰 지연시간(Time-to-First-Token (TTFT))
요청이 도착한 뒤 첫 번째 출력 토큰이 생성될 때까지 걸리는 시간입니다. Prefill 대기와 KV cache 전송 시간이 포함되므로, 분리형 구조에서는 prefill 풀의 부하와 버퍼 상태가 주요 영향을 줍니다.
출력 토큰당 시간(Time-per-Output-Token (TPOT))
연속된 출력 토큰 사이에 걸리는 시간으로, decode 응답의 지속적인 지연을 나타냅니다. Temporal disaggregation에서 prefill을 위해 decode가 중단되면 TPOT 분위수가 악화되므로 두 단계의 독립 실행이 중요해집니다.

기술

  • DistServe
  • Splitwise
  • SARATHI
  • Bullet
  • DuetServe
  • CUDA green contexts
  • DeepSeek’s V3
  • DeepEP
  • dynamo
  • vLLM
  • NIXL connector
  • SGLang
  • Mooncake
  • RDMA
  • B200
  • GLM-5.2

활용 사례

  • 대규모 LLM Serving
  • TTFT와 TPOT를 독립적으로 조정하는 추론 시스템
  • Prefill과 Decode의 GPU 자원 분리
  • Attention과 FFN의 가속기 분리
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 12.수집 2026. 08. 12.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.