AI 반도체 내부에서는 무슨 일이 일어날까? LLM 인퍼런스 병목·KV 캐시·Roofline 모델 완벽 해설

생성형 AI 시대의 핵심 인프라! 엔비디아 GPU 독점과 AI 반도체 전쟁의 본질을 파헤칩니다. LLM 추론의 2단계(Prefill vs Decode), 메모리 대역폭 병목을 드러내는 Roofline 모델, 메모리 낭비를 해결한 PagedAttention과 KV 캐시 최적화 원리를 완벽 정리합니다.
IT·과학
저자

Ikmyungterran

공개

2026년 9월 8일

Modified

2026년 9월 8일

0. AI 인프라의 거대한 대전환: 학습(Training)에서 서빙(Serving)으로

2023년 ChatGPT의 등장 이후, AI 산업의 화두는 “어떻게 더 똑똑한 모델을 학습시킬 것인가(Training)”였습니다. 하지만 2026년 현재, 기업들의 가장 큰 고민은 “이 거대한 모델을 어떻게 하면 싼 전기세와 서버 비용으로 24시간 연중무휴 서빙할 것인가(Inference)”로 완전히 이동했습니다.

AI 모델을 학습시킬 때는 수천 대의 GPU가 몇 달 동안 거대한 행렬 곱셈을 맹렬히 연산합니다. 이때는 연산 성능(FLOPS)이 깡패입니다.

하지만 사용자가 질문을 던지고 답변을 받아보는 추론(Inference) 단계에서는 완전히 다른 차원의 물리적 병목이 발생합니다. 최신 1억 원짜리 엔비디아 GPU를 꽂아두어도, 연산 코어의 80%가 아무 일도 하지 못하고 멍하니 노는 기현상이 벌어집니다. 왜 이런 일이 생길까요?

graph LR
    A["AI 추론 인프라의 딜레마"] --> B["연산 코어 (Tensor Core): 놀고 있음"]
    A --> C["메모리 대역폭 (HBM Bus): 숨 넘어감"]
    B ---|불균형 병목| C
    style A fill:#F1F5F9,stroke:#475569,stroke-width:2px;
    style B fill:#DCFCE7,stroke:#16A34A,stroke-width:2px;
    style C fill:#FEE2E2,stroke:#DC2626,stroke-width:2px;


1. LLM 추론의 2가지 얼굴: Prefill vs Decode

LLM(대규모 언어 모델)이 사용자의 질문을 받아 답변을 생성하는 과정은 완전히 성격이 다른 2단계로 쪼개집니다.

flowchart TD
    subgraph Step1["1. 프롬프트 처리 단계 (Prefill)"]
        P1["사용자가 보낸 긴 문서/질문 (예: 2,000 토큰)"] --> P2["모든 입력 토큰을 한 번에 병렬 연산 (Matrix-Matrix 곱)"]
        P2 --> P3["특성: 연산 집약적 (Compute-Bound) - GPU 코어가 신나게 일함!"]
    end
    subgraph Step2["2. 토큰 생성 단계 (Decode)"]
        D1["단어(토큰)를 하나씩 순차적으로 생성 (Autoregressive)"] --> D2["1개 토큰을 만들 때마다 수십~수백 GB의 전체 모델 가중치와 KV 캐시를 메모리에서 읽어옴"]
        D2 --> D3["특성: 메모리 대역폭 집약적 (Memory-Bandwidth Bound) - 코어는 쉬고 메모리 버스만 과열!"]
    end
    Step1 --> Step2
    style Step1 fill:#E0F2FE,stroke:#0284C7,stroke-width:2px;
    style Step2 fill:#FEF3C7,stroke:#D97706,stroke-width:2px;

비교 항목 Prefill (사전 입력 처리) Decode (순차 토큰 생성)
입력 형태 사용자 프롬프트 전체 (수백~수만 토큰) 바로 직전에 생성된 단 1개의 토큰
연산 방식 대규모 행렬 곱셈 (\(GEMM\)) 벡터와 행렬의 곱셈 (\(GEMV\))
병목 원인 연산 코어 속도 (Compute-bound) 메모리 대역폭 속도 (Memory-bound)
GPU 가동률 80~90% (코어가 꽉 차서 효율적) 10~20% (메모리에서 데이터가 오길 기다리느라 놈)
사용자 체감 지표 TTFT (첫 토큰 도달 시간, Time-to-First-Token) TPS (초당 생성 토큰 수, Tokens Per Second)

2. KV 캐시(KV Cache): 재계산의 지옥에서 탈출하는 열쇠

트랜스포머(Transformer) 모델의 핵심은 어텐션(Attention) 메커니즘입니다. 문맥을 이해하려면 모든 단어가 이전의 모든 단어를 돌아보며 \(Q(Query), K(Key), V(Value)\) 벡터를 곱해야 합니다.

  • KV 캐시가 없다면?: 100번째 단어를 만들 때 앞의 99개 단어의 Key와 Value를 처음부터 다시 계산해야 합니다. 101번째 단어를 만들 때는 100개를 다시 계산합니다. 토큰 길이가 길어질수록 연산량이 제곱(\(O(N^2)\))으로 폭증하여 모델이 멈춥니다.
  • KV 캐시를 쓰면?: 이미 계산한 앞 단어들의 \(K\)\(V\) 벡터를 GPU 고속 메모리에 고스란히 저장해 둡니다. 새로운 단어가 나올 때마다 메모리에서 과거 \(K, V\)를 꺼내와서 현재 단어의 \(Q\)와 곱하기만 하면 됩니다.
중요💥 그런데 문제는 “메모리 폭발”이다!

KV 캐시 덕분에 연산량은 줄었지만, 대신 엄청난 메모리 용량을 처먹는 하마가 되었습니다. 예를 들어 LLaMA-70B 모델에서 동시 접속자가 100명이고 각자 4,000토큰짜리 대화를 나눈다면, KV 캐시 용량만 수십 기가바이트(GB)에 달합니다. 모델 자체 가중치(140GB)를 올리고 나면 일반 GPU 메모리(80GB H100 여러 장)조차 금방 동이 나버립니다.


3. 루프라인 모델(Roofline Model): 내 알고리즘은 코어가 문제일까, 메모리가 문제일까?

컴퓨터 아키텍처에서 하드웨어의 성능 한계를 진단하는 가장 우아한 도구가 바로 루프라인 모델(Roofline Model)입니다.

graph TD
    X["X축: 산술 강도 (Arithmetic Intensity = FLOPs / Byte)<br>데이터 1바이트를 메모리에서 퍼올릴 때 몇 번의 계산을 수행하는가?"]
    Y["Y축: 실제 달성 성능 (GFLOPs / TFLOPs)"]
    Slope["경사선 구간: 메모리 대역폭에 갇힌 영역 (Memory Bound)"]
    Flat["지붕(Roof) 구간: 연산 코어의 물리적 한계 (Compute Bound)"]
    X --- Slope --- Flat
    style X fill:#F1F5F9,stroke:#475569,stroke-width:1px;
    style Slope fill:#FEE2E2,stroke:#DC2626,stroke-width:2px;
    style Flat fill:#DCFCE7,stroke:#16A34A,stroke-width:2px;

  • 산술 강도(Arithmetic Intensity): 메모리에서 1바이트를 읽어왔을 때 CPU/GPU 코어가 그 데이터를 가지고 계산을 몇 번이나 우려먹는지를 나타내는 수치입니다.
  • Decode 단계의 비극: 새 토큰 1개를 만들기 위해 수십 기가바이트의 파라미터를 HBM에서 칩 코어로 끌어올리는데, 가져온 숫자를 가지고 단 한 번 곱하고 끝납니다. 산술 강도가 극도로 낮기 때문에 루프라인의 가파른 왼쪽 경사면(Memory-bound)에 갇히게 됩니다. 아무리 칩의 FLOPS를 10배 늘려도 메모리 대역폭이 늘어나지 않으면 생성 속도는 단 1%도 빨라지지 않습니다!

4. 소프트웨어의 반격: vLLM과 PagedAttention 혁신

이 메모리 병목을 기발하게 해결한 소프트웨어 기술이 바로 버클리 대학 연구진이 개발한 PagedAttention (vLLM)입니다.

과거에는 사용자가 앞으로 몇 토큰을 말할지 모르기 때문에, 최대 문맥 길이(예: 4,000토큰)에 해당하는 거대한 연속 메모리를 미리 예약 할당했습니다. 이로 인해 실제 사용되지 않는 메모리의 60~80%가 낭비(내부/외부 단편화)되었습니다.

flowchart LR
    OS["운영체제 OS의 가상 메모리 페이징 기법"] --> Paged["PagedAttention: KV 캐시를 고정 블록(예: 16토큰)으로 분할"]
    Paged --> Alloc["필요할 때마다 물리 메모리 블록을 동적 매핑"]
    Alloc --> Win["메모리 낭비율 4% 미만으로 급감! 동시 처리량(Throughput) 2~4배 폭증!"]
    style OS fill:#F1F5F9,stroke:#475569,stroke-width:1px;
    style Paged fill:#E0F2FE,stroke:#0284C7,stroke-width:2px;
    style Alloc fill:#FEF3C7,stroke:#D97706,stroke-width:2px;
    style Win fill:#DCFCE7,stroke:#16A34A,stroke-width:2px;

운영체제가 RAM을 관리할 때 쓰는 ‘가상 메모리 페이징(Paging)’ 기술을 KV 캐시에 그대로 이식하여, 불연속적인 메모리 조각들을 페이지 테이블로 엮어 낭비를 완벽히 없앴습니다.


5. 차세대 AI 반도체의 미래: HBM 탈피와 전용 추론 가속기

엔비디아가 GPU 가격을 천정부지로 올릴 수 있는 진짜 이유는 칩 자체의 연산 코어보다도 칩 옆에 붙어 있는 초고가 초고속 메모리인 HBM(고대역폭 메모리) 때문입니다.

이에 맞서 차세대 스타트업들과 빅테크들은 새로운 아키텍처를 제시하고 있습니다: * LPU (Groq, Cerebras): 고비용 HBM 대신 칩 내부에 초고속 SRAM을 수백 메가바이트 집적하여 메모리 대역폭 병목을 아예 물리적으로 소멸시킴 (초당 수백 토큰 생성). * 전용 추론 프로세서 (HyperAccel Bertha 등): 거대한 범용 코어를 덜어내고, LLM의 Latency와 Memory-bound 특성에만 100% 최적화된 하드웨어 파이프라인을 구축하여 GPU 대비 1/10의 전력과 비용 달성.


📚 참고 문헌 및 공식 출처

구분 자료명 주요 내용 링크
기념비적 논문 Efficient Memory Management for Large Language Model Serving with PagedAttention vLLM 팀(Woosuk Kwon et al.), PagedAttention 및 KV 캐시 최적화 원문 arXiv:2309.06180
컴퓨터 구조 이론 Roofline: An Insightful Visual Performance Model for Multicore Architectures Williams, Waterman, Patterson 저, 산술 강도와 루프라인 한계 분석 CACM Paper
공식 오픈소스 vLLM Official Project Portal 고성능 LLM 서빙 프레임워크 아키텍처 및 벤치마크 vllm.ai

함께 읽으면 좋은 글