추론이 늘면 HBM·D램·SSD가 같은 비율로 더 팔린다는 설명은 한 단계가 빠져 있습니다. 실제 수요를 가르는 것은 문맥 길이 × 동시 처리 요청 수 × 토큰당 KV 캐시 크기, 그리고 그 캐시가 얼마나 재사용되는지입니다. Meta가 공개한 Llama 3.1 70B 사양으로 계산하면 FP16 KV 캐시는 128K 문맥 요청 하나에 약 40GiB이고, 이런 요청 10개를 동시에 유지하면 부가 오버헤드 전에도 약 400GiB입니다.
모델 크기보다 먼저 볼 계산식
KV 캐시의 토큰당 크기는 대략 2 × 레이어 수 × KV 헤드 수 × 헤드 차원 × 바이트 수입니다. 앞의 2는 Key와 Value 두 묶음을 뜻합니다. Llama 3.1 70B는 80개 레이어, 8개 KV 헤드, 헤드 차원 128을 쓰므로 FP16 기준 2×80×8×128×2=327,680바이트, 즉 토큰당 320KiB입니다. 여기에 131,072토큰을 곱한 40GiB가 한 요청의 최대 작업집합입니다. 이는 공개 사양을 바탕으로 한 계산값이며 메모리 할당 오버헤드는 포함하지 않았습니다.
| 계층 | 주로 놓이는 것 | 수요가 커지는 조건 | 한계 |
|---|---|---|---|
| HBM | 연산 중인 가중치와 가장 뜨거운 KV | 낮은 지연시간, 긴 문맥, 높은 동시성 | 용량과 가격 |
| 서버 D램 | 곧 다시 쓸 가능성이 높은 KV·프리픽스 | 캐시 재사용률이 높고 GPU 연결이 빠를 때 | PCIe 전송 지연 |
| eSSD | 차가운 KV·프리픽스·모델 캐시 | 재계산보다 저장·복원이 쌀 때 | 토큰 단위 실시간 접근에는 느림 |
D램은 HBM 대체재가 아니라 ‘웜 캐시’입니다
NVIDIA TensorRT-LLM은 KV 블록을 호스트 메모리로 내보내는 기능을 제공하며 문서 예시에서는 약 45GB의 고정 호스트 메모리를 잡습니다. 그러나 같은 문서는 이득이 연결 구조에 달렸다고 명시합니다. Grace Hopper처럼 CPU와 GPU 사이 대역폭이 충분하면 비용이 작지만, 구형 구조에서는 오프로딩이 유리하지 않을 수 있습니다. 따라서 계층형 메모리의 D램 수요는 GPU 대수보다 GPU당 호스트 D램, 캐시 적중률, 인터커넥트 대역폭을 함께 봐야 합니다.
SSD도 모든 디코딩 토큰을 직접 받는 메모리가 아닙니다. Mooncake는 Kimi 운영에서 CPU·D램·SSD·RDMA를 분리형 KV 저장소로 묶었고, 실제 트레이스에서 평균 입력 7,590토큰·출력 182토큰인 긴 입력 중심 부하를 처리했습니다. 논문은 서비스 수준 목표를 지키면서 처리 요청 수가 약 75% 늘었다고 보고합니다. 반면 FlexGen이 16GB GPU 한 장으로 OPT-175B를 돌린 결과는 초당 1토큰 수준이었습니다. SSD는 긴 문맥의 재계산 비용이 읽기 비용보다 클 때 쓰는 차가운 계층이지, HBM을 그대로 대신하는 계층이 아닙니다.
수요를 줄이는 반대 방향도 큽니다
물리 메모리 수요가 토큰 증가율을 그대로 따라가지 않는 이유도 있습니다. Llama 계열은 GQA로 KV 헤드 수를 줄였고, DeepSeek-V2는 MLA가 이전 DeepSeek 67B보다 KV 캐시를 93.3% 줄였다고 보고했습니다. vLLM의 PagedAttention도 조각화와 중복을 줄여 같은 메모리에서 더 많은 요청을 처리합니다. KV 캐시 압축·페이지 관리·프리픽스 공유가 빨라지면 트래픽은 늘어도 서버당 필요한 바이트는 덜 늘 수 있습니다.
그래서 다음 숫자를 보겠습니다. 평균 입력 문맥, GPU당 활성 시퀀스, 모델별 토큰당 KV 바이트, 프리픽스 캐시 적중률, HBM→호스트 오프로딩률, 서버당 D램과 로컬 NVMe 용량입니다. 추론 토큰 수는 출발점일 뿐이며, 메모리 업황으로 번역하는 핵심 변수는 KV 작업집합과 재사용률입니다.
출처
- Meta Llama 3.1 모델 사양
- NVIDIA TensorRT-LLM KV 캐시 재사용·오프로딩 문서
- Mooncake 논문
- FlexGen 논문
- DeepSeek-V2 논문
- vLLM PagedAttention 논문
이 리포트는 AI가 작성했고 발주자가 사후 검수합니다.
밑줄 친 말은 용어 위키로 이어집니다.