본문으로 건너뛰기

KV Cache

[!tldr] 업무 관점 takeaway KV Cache는 우리 미션 전체의 데이터 객체다. 이 데이터의 (1) 크기·생명주기·재사용 패턴이 WAF 증가 원인, (2) GPU 밖으로 빼야만 하는 이유가 [[LMCache-개요|LMCache]] 존재 이유, (3) hot/cold가 극단적으로 갈리는 특성이 [[NVMe-FDP|FDP]] 적용 효과의 근거. 한 문장: "KV Cache의 lifetime 불균일이 [[WAF]] 증가의 직접 원인이며, FDP는 정확히 그걸 푼다."


한 줄 정의

LLM이 텍스트를 생성할 때, 이전 토큰들의 Attention 계산 결과(Key, Value 텐서)를 저장해 재계산을 피하는 메모리.

100페이지 책을 다시 읽을 때 포스트잇 메모를 보는 것에 비유.


왜 GPU 밖으로 꺼내야 하는가? — 3가지 이유

① GPU 메모리 한계

  • LLM은 입력 토큰마다 KV를 저장
  • Context 길이↑ + 동시 사용자↑ → KV 크기 폭증
  • GPU HBM은 빠르지만 작음 → 금방 꽉 참
  • 외부 티어 필요: CPU DRAM → SSD → Remote ([[LMCache-아키텍처|4-tier]])

② 재사용 (Prefix Caching)

User A: "Summarize this paper..."
User B: "Translate this paper..."

앞 prefix가 같으면 KV 재사용 가능. 하지만 GPU만 쓰면:

  • GPU가 바뀌면 사용 불가
  • 메모리 부족 시 eviction
  • 서버 간 공유 불가

③ 멀티 GPU / 분산 환경 ([[PD-Disaggregation|PD 분리]])

Prefill GPU → Decode GPU로 KV를 옮겨야 한다.


KV Cache의 워크로드 특성 (FDP 핵심 근거)

Lifetime이 극단적으로 갈린다

Prefix Cache (시스템 프롬프트): 수명 hours ~ days (long)
중간 컨텍스트 캐시: 수명 minutes (medium)
Single-query KV: 수명 seconds (short)

이게 같은 NAND 블록에 섞이면 → 짧은 게 지워질 때 긴 게 같이 복사됨 → [[WAF]] 증가 ([[NAND-Flash-기초]] 참조).

재사용 패턴 — 의외로 높은 히트율

  • 실측 RAG/대화 기록에서도 50% 히트율
  • 전체 사용자 19%가 1.5회 이상 재사용
  • ⇒ 캐시 가능성이 매우 넓음

KV Cache가 SSD에 만드는 I/O 패턴

Write: GPU에서 evict된 KV → SSD에 저장 (burst, async)
Read: 재사용 시 SSD → CPU → GPU (blocking, latency-sensitive)
Delete: 더 이상 필요없는 KV → 공간 반환

→ random write + delete가 빈번 + [[Garbage-Collection|GC]] 폭주 + WAF 증가.


의외의 연결

[!note] KV Cache lifetime 불균일 ↔ FDP의 핵심 가치 KV Cache 워크로드는 lifetime이 자연스럽게 hot/cold로 분리된다. [[NVMe-FDP|FDP RUH]]가 풀려는 정확한 문제 = "lifetime 다른 데이터 분리 배치". 그래서 KV Cache는 FDP의 ideal workload다.

[!note] KV Cache 256 토큰 chunk ↔ medium file Llama-3.1-8B 기준 256 토큰 chunk ≈ 134MB. small file 아님. medium file의 random write 폭주가 WAF 원인. ([[LMCache-Local-Disk-Backend|LMCache "청크 하나 = 파일 하나"]])


측정 가능한 KV Cache 효과

  • TTFT (Time to First Token) — cold(캐시 없음) vs warm(있음) 비교
  • ITL (Inter-Token Latency) — 토큰 사이 간격
  • 자세히: [[TTFT-ITL]]

실측: 15,376 토큰 프롬프트 기준 cold 6.314초 → warm 0.148초 (42.6×)


관련 페이지

  • [[LMCache-개요]] — KV Cache를 외부 티어로 빼내는 SW
  • [[vLLM-PagedAttention]] — KV Cache 메모리 관리 방식 (페이지)
  • [[NVMe-FDP]] — KV Cache 워크로드에 이상적인 SSD 기술
  • [[WAF]] — KV Cache가 증가시키는 핵심 지표
  • [[PD-Disaggregation]] — KV Cache 전송이 필수가 되는 환경