EP 112. AI 반도체 안에서 일어나는 일들: KV Cache부터 Roofline까지

📺 원본 영상: EP 112. AI 반도체 안에서 일어나는 일들: KV Cache부터 Roofline까지
🎙️ 채널: AI Frontier Korea (노정석)
📅 정리 일자: 2026-09-02
⚠️ Note: 본 리포트는 영상의 음성을 텍스트로 변환(STT)하여 정리한 것입니다. 화면에 표시된 자료인 차트, 수식, 칩 사진, 표와 다이어그램 등은 포함되지 않을 수 있습니다.


개요

이번 강연은 사용자가 LLM에 질문을 보낸 뒤 GPU와 AI 가속기 내부에서 실제로 어떤 연산과 데이터 이동이 일어나는지를 추적한다. 핵심은 추론을 Prefill(프리필)과 Decode(디코드)라는 성격이 전혀 다른 두 단계로 나누고, KV Cache가 왜 거대한 메모리 수요를 만들어내는지, 그리고 Roofline Analysis(루프라인 분석)를 통해 연산 성능과 메모리 대역폭의 병목을 어떻게 판별하는지 이해하는 데 있다.

강연은 여기서 한 단계 더 나아가 vLLM을 비롯한 서빙 프레임워크가 Continuous Batching(연속 배칭), PagedAttention(페이지드 어텐션), Chunked Prefill(청크드 프리필), Speculative Decoding(투기적 디코딩)을 통해 하드웨어 활용률을 끌어올리는 과정을 설명한다. 마지막에는 Agentic AI(에이전틱 AI)가 계산보다 기억과 데이터 이동에 훨씬 큰 비용을 요구하면서, 추론 인프라의 중심이 단일 GPU에서 이기종 하드웨어와 계층형 메모리 시스템으로 이동할 가능성을 전망한다.


컴퓨트 부족은 일시적 현상이 아니라 구조적 조건이다

강연의 출발점은 AI 산업이 앞으로도 상당 기간 Compute Crunch(컴퓨트 부족)에서 벗어나기 어렵다는 진단이다. 강연자가 소개한 Sam Altman의 발언에 따르면, 학습과 추론 수요가 빠르게 증가하기 때문에 컴퓨팅 자원이 충분해지는 순간을 기대하기보다는 항상 부족한 컴퓨트를 전제로 산업을 설계해야 한다. Google Cloud의 토큰 사용량 역시 12개월 동안 50배, 14개월 동안 100배, 이후 2024년 대비 약 330배로 늘었다고 소개되는데, 이는 모델 사용의 확대가 단순한 사용자 증가를 넘어 추론 인프라의 물리적 증설을 압박하고 있음을 보여준다.

모델 규모도 다시 커지는 가운데 이를 감당하기 위한 데이터센터 투자는 전력 공급이라는 제약에 부딪힌다. 강연에서는 2030년까지 세계 데이터센터에 약 6.7조 달러가 투입될 것이라는 전망과 한국이 2035년까지 약 18.4GW 규모의 데이터센터 구축을 추진한다는 수치가 언급된다. 다만 이러한 수치는 발표 자료와 구두 설명을 기반으로 하므로, 정확한 조사 범위와 산출 기준은 원본 영상 및 해당 자료에서 확인할 필요가 있다.

이처럼 수요가 공급보다 빠르게 증가하면 AI 기업의 경제성은 단순히 더 많은 GPU를 확보하는 문제로 끝나지 않는다. 강연자는 Anthropic과 같은 Frontier Lab(프런티어 연구소)의 매출이 빠르게 성장하더라도 학습용 컴퓨트를 무한정 추론으로 돌릴 수 없고, 이미 높은 추론 마진 역시 계속 확대하기 어렵다고 분석한다. 결국 같은 전력과 같은 반도체로 더 많은 유효 토큰을 생산하는 Inference Engineering(추론 엔지니어링)이 기업의 수익성과 직결되는 단계에 들어섰다는 것이 이번 강연의 배경이다.

HBM 대신 LPDDR을 택한 HyperAccel의 문제 설정

HyperAccel(하이퍼엑셀)이 소개한 첫 데이터센터용 AI 반도체 Bertha 500(베르다 500)은 일반적인 고성능 GPU처럼 HBM(High Bandwidth Memory)을 사용하지 않고 LPDDR(Low-Power Double Data Rate) 메모리를 채택한다. HBM은 높은 대역폭을 제공하지만 가격이 비싸고 공급 제약이 있으며 전력 부담도 크다. 이에 비해 LPDDR은 상대적으로 저렴하고 전력 효율이 좋기 때문에, 최고 속도보다 비용과 전력 효율이 중요한 추론 시장을 겨냥할 수 있다.

물론 LPDDR을 사용하면 메모리 대역폭이 낮아진다는 문제가 생긴다. 강연에 따르면 Bertha 500은 다수의 LPDDR 칩을 연결해 약 546GB/s의 대역폭을 확보하며, 내부 아키텍처를 통해 이론 대역폭의 90% 이상을 실제 워크로드에서 활용하는 것을 목표로 한다. H100 SXM의 약 3.35TB/s라는 이론 대역폭과 비교하면 절대 수치는 낮지만, 범용 GPU가 최적화되지 않은 상태에서 이론 대역폭을 모두 사용하지 못한다는 점을 고려하면 실효 대역폭의 격차는 표면적인 숫자보다 작아질 수 있다는 설명이다.

Bertha 500은 기본 128GB, 최대 256GB의 LPDDR5X 메모리를 제공하며 목표 가격은 약 5,000달러로 소개된다. 이는 가장 빠른 응답이 필요한 서비스보다는 높은 메모리 용량, 저렴한 비용, 낮은 전력 소비를 우선하는 워크로드에서 경쟁력을 확보하려는 설계다. 결국 AI 가속기의 가치는 단일 성능 지표가 아니라 대상 애플리케이션의 지연시간 요구, 모델 크기, 동시 사용자 수와 총소유비용을 함께 놓고 평가해야 한다.

💡 [영상 참조] 강연자는 이 구간에서 Bertha 500 PCIe 카드와 LPDDR 배치, 메모리 대역폭 및 용량 사양을 화면으로 설명한다.
📺 원본 영상에서 상세 구성을 확인할 수 있다.


LLM 추론을 나누는 두 단계인 Prefill과 Decode

사용자의 프롬프트가 들어오면 LLM은 입력 토큰 전체를 병렬로 처리해 첫 번째 출력 토큰을 생성한다. 이 단계를 Prefill이라고 하며, 프롬프트 입력부터 첫 토큰이 나타날 때까지의 시간을 TTFT(Time to First Token)라고 부른다. 입력이 수천 개 이상의 토큰으로 길어져도 행렬 연산의 병렬성을 활용할 수 있으므로, Prefill은 대체로 연산 장치의 처리 능력을 집중적으로 사용하는 단계다.

첫 토큰이 나온 뒤에는 방금 생성한 토큰을 다시 입력으로 넣어 다음 토큰을 만드는 Autoregressive(자기회귀) 과정이 반복된다. 이것이 Decode이며, 한 번에 하나의 다음 토큰을 순차적으로 생성해야 하므로 앞선 결과에 대한 의존성이 강하다. 토큰 사이의 생성 간격은 TBT(Time Between Tokens) 또는 TPOT(Time Per Output Token) 등으로 표현되며, 사용자가 답변을 읽을 때 체감하는 매끄러움과 직접 연결된다.

따라서 Prefill과 Decode는 같은 Transformer 모델을 실행하지만 하드웨어에 요구하는 성격이 다르다. Prefill은 많은 입력 토큰에 같은 가중치를 재사용할 수 있어 Compute-bound(연산 병목)가 되기 쉬운 반면, Decode는 매 토큰마다 거대한 가중치와 문맥 정보를 읽어야 해 Memory-bound(메모리 병목)가 되기 쉽다. 이후 등장하는 거의 모든 추론 최적화는 이 불균형을 줄이거나 두 단계가 서로 방해하지 않도록 분리하는 시도라고 볼 수 있다.

Transformer 내부에서 Attention과 FFN이 맡는 역할

Transformer의 각 레이어는 크게 Attention(어텐션)과 FFN(Feed-Forward Network)으로 구성된다. Attention은 입력 토큰의 임베딩으로부터 Query, Key, Value를 만들고, Query와 Key의 관계를 계산한 뒤 그 결과를 Value에 반영한다. 개념적으로는 서로 다른 토큰 사이의 관계를 처리하는 연산이며, 긴 문맥 안에서 앞선 정보가 현재 토큰에 어떤 영향을 주는지를 결정한다.

FFN은 각 토큰 내부의 벡터 차원을 변환하는 역할을 수행한다. 강연에서는 일반적인 Dense Model(밀집 모델)의 파라미터가 Attention에 약 20%, FFN에 약 80%의 비율로 분포한다고 설명하며, MoE(Mixture of Experts) 모델에서는 FFN 측 파라미터 비중이 더욱 커진다고 덧붙인다. Transformer의 상징은 Attention이지만, 실제 파라미터 저장량과 행렬 연산의 상당 부분은 FFN에 존재하는 셈이다.

강연자는 이 구조를 과거 CNN의 공간 방향 연산과 채널 방향 연산에 비유한다. CNN이 제한된 주변 영역을 보는 경우가 많았다면 Self-Attention(셀프 어텐션)은 문맥 안의 넓은 토큰 관계를 다룰 수 있으므로 더 일반화된 구조로 볼 수 있다. 이 설명은 Transformer를 하나의 추상적 블랙박스가 아니라 토큰 간 관계 연산과 토큰 내부 표현 변환이 교대로 반복되는 시스템으로 이해하게 해준다.


KV Cache는 대화의 기억이자 메모리 비용의 근원이다

Decode 단계에서 새 토큰의 Attention을 계산하려면 현재 Query뿐 아니라 이전 모든 토큰의 Key와 Value가 필요하다. 이를 매번 처음부터 다시 계산하면 비용이 너무 크므로, Prefill과 각 Decode 단계에서 생성한 Key와 Value를 메모리에 보관한 뒤 다음 단계에서 다시 읽어온다. 이 저장 공간이 KV Cache이며, 사용자가 이전에 입력한 문맥과 모델이 생성한 답변을 계산 관점에서 기억하게 하는 핵심 장치다.

문제는 KV Cache가 모델 크기, 레이어 수, Attention 구조, 정밀도, 문맥 길이와 동시 사용자 수에 따라 빠르게 증가한다는 점이다. 강연에서는 Llama 3.1 70B를 BF16 또는 FP16으로 다루는 예시에서 토큰당 약 320KiB의 KV Cache가 필요하고, 128K 문맥에서는 한 사용자만으로도 약 40GiB를 요구한다고 설명한다. H100 한 장의 80GB 메모리 중 절반가량을 단일 사용자의 문맥이 차지할 수 있다는 뜻이므로, 장문맥 서비스에서는 모델 가중치만큼 KV Cache의 규모가 중요한 설계 변수가 된다.

동시 사용자 수가 늘어나면 문제는 더욱 심각해진다. 모델 가중치는 여러 사용자가 공유할 수 있지만 KV Cache는 사용자별 문맥이 다르기 때문에 대부분 공유할 수 없다. 강연에서 제시한 조건에 따르면 배치 512와 128K 문맥의 조합에서는 KV Cache가 약 20TiB, 십진 단위로 약 22TB에 이를 수 있어 단일 서버 수준의 메모리 구성만으로 처리하기 어렵다.

💡 [영상 참조] 강연자는 Llama 계열 모델의 토큰당 KV Cache와 문맥 길이에 따른 메모리 증가량을 표와 계산식으로 보여준다. 화면의 전체 수식과 모델별 수치는 원본 영상에서 확인해야 한다.
📺 원본 영상에서 확인할 수 있다.

KV Cache를 줄이는 방법은 여러 층위에서 등장한다. 더 작은 모델을 사용하거나 KV Cache를 8비트 또는 4비트로 양자화할 수 있으며, GQA(Grouped-Query Attention)와 MQA(Multi-Query Attention)는 여러 Query가 Key와 Value를 공유하도록 구조를 바꾼다. DeepSeek가 사용한 MLA(Multi-head Latent Attention)는 Key와 Value 정보를 더 작은 잠재 표현으로 압축하며, Sliding Window Attention(슬라이딩 윈도우 어텐션)은 모든 과거 토큰 대신 제한된 주변 문맥만 참조해 저장량과 연산량을 줄인다.

메모리에서 완전히 삭제하는 대신 낮은 계층으로 옮기는 방식도 중요하다. 사용하지 않는 KV Cache를 CPU DRAM이나 SSD로 내보냈다가 필요할 때 다시 가져오면 HBM 점유를 줄일 수 있으며, 재계산보다 데이터 재로딩이 더 저렴한 경우가 많다. 이 때문에 KV Cache 관리는 단일 메모리의 용량 문제가 아니라 HBM, DRAM, SSD와 고대역폭 플래시를 연결하는 계층형 저장 및 스케줄링 문제로 발전하고 있다.


Roofline Analysis로 보는 연산과 메모리의 경계

프로세서가 어떤 연산을 수행하려면 먼저 메모리에서 데이터를 가져오고, 연산 장치가 그 데이터를 처리한 뒤 결과를 다시 저장해야 한다. 따라서 실제 성능은 초당 수행할 수 있는 연산량과 초당 공급할 수 있는 데이터양 가운데 더 부족한 쪽에 의해 제한된다. 연산기가 아무리 많아도 데이터가 늦게 도착하면 쉬게 되고, 메모리가 충분히 빨라도 연산기가 부족하면 계산이 끝날 때까지 기다려야 한다.

Arithmetic Intensity(산술 집약도)는 메모리에서 읽어온 데이터 한 바이트당 얼마나 많은 연산을 수행하는지를 나타낸다. 같은 가중치를 여러 입력 토큰에 반복해서 사용하면 산술 집약도가 높아지며, 한 번 읽은 가중치를 한 번만 사용하면 낮아진다. 강연의 단순화된 설명에 따르면 Prefill에서는 산술 집약도가 대략 배치 크기와 시퀀스 길이의 곱에 비례하지만, 한 토큰씩 처리하는 Decode에서는 배치를 고려하지 않을 경우 매우 낮은 값에 머문다.

강연에서는 H100이 BF16 기준 약 1PFLOPS의 연산 성능과 약 3.35TB/s의 메모리 대역폭을 제공한다는 예시를 통해 Ridge Point(리지 포인트)를 약 300 수준으로 설명한다. 이는 산술 집약도가 이 경계보다 낮으면 Memory-bound, 높으면 Compute-bound가 된다는 뜻이다. 구체적인 값은 연산 정밀도, 희소성 적용 여부와 사양 집계 방식에 따라 달라질 수 있으므로, 여기서는 강연의 직관적 예시로 이해하는 것이 적절하다.

Roofline 그래프의 가로축은 산술 집약도이고 세로축은 달성 가능한 연산 성능이다. 경사진 구간은 메모리 대역폭이 성능을 제한하는 영역이며, 수평 구간은 프로세서의 최대 연산량이 한계를 정하는 영역이다. 메모리 대역폭을 높이면 경사선이 위로 이동하고 Ridge Point는 왼쪽으로 옮겨지므로, 더 낮은 산술 집약도의 워크로드도 높은 성능에 도달할 수 있다.

💡 [영상 참조] 강연자는 Roofline 그래프에서 메모리 대역폭, 최대 연산 성능, Ridge Point가 어떻게 연결되는지 시각적으로 설명한다.
📺 원본 영상에서 그래프를 확인할 수 있다.

이 분석에 따르면 Prefill은 긴 입력의 가중치 재사용 덕분에 Compute-bound 영역으로 이동하기 쉽지만, Decode는 구조적으로 Memory-bound에 머물기 쉽다. Decode 성능을 개선하려면 여러 사용자의 토큰을 배치로 묶어 가중치 재사용률을 높이거나, 데이터 정밀도를 낮춰 같은 대역폭으로 더 많은 값을 전달해야 한다. 다만 Attention의 KV Cache는 사용자마다 달라 공유하기 어려우므로, 일반적인 배칭만으로는 Attention의 산술 집약도를 충분히 높일 수 없다는 한계가 남는다.

Attention의 메모리 병목을 완화하는 방법

GQA와 MQA는 여러 Query가 동일한 Key와 Value를 사용하게 함으로써 Attention의 데이터 재사용률을 높인다. 예컨대 여덟 개의 Query가 하나의 Key·Value 집합을 공유한다면, 같은 데이터를 여러 계산에 활용할 수 있어 산술 집약도가 그만큼 개선될 수 있다. MLA는 여기서 더 나아가 공유되는 KV 표현 자체를 압축함으로써 용량과 대역폭 부담을 함께 낮춘다.

Prefix Caching(프리픽스 캐싱)은 여러 요청에 공통으로 붙는 System Prompt(시스템 프롬프트), 도구 정의와 정책 문구의 KV Cache를 미리 계산해 재사용한다. 사용자가 달라도 앞부분이 동일하다면 같은 계산과 데이터가 반복되므로, 이를 공유하면 Prefill 비용과 응답 지연을 모두 줄일 수 있다. API 서비스가 캐시 적중 입력에 더 낮은 가격을 적용할 수 있는 것도 이러한 재사용이 실제 인프라 비용을 절감하기 때문이다.

KV Cache Quantization(양자화)은 각 값을 더 적은 비트로 저장해 동일한 메모리 대역폭으로 더 많은 문맥 정보를 읽는 방법이다. 그러나 정밀도를 낮추면 품질 저하 가능성이 있으므로, 단순한 압축률뿐 아니라 모델 정확도와 서비스 수준을 함께 검증해야 한다. 결국 Attention 최적화는 메모리 용량, 데이터 전송량, 연산 재사용성과 출력 품질 사이에서 균형을 찾는 작업이다.


좋은 벤치마크는 단일 숫자가 아니라 Pareto Curve다

추론 하드웨어의 성능을 하나의 토큰 처리량 숫자로만 비교하면 실제 서비스의 품질을 설명하기 어렵다. 강연은 사용자 한 명이 초당 얼마나 많은 토큰을 받는지를 Interactivity(상호작용 속도), 서버 또는 GPU가 모든 사용자에게 생성한 초당 토큰의 총합을 Throughput(처리량)으로 구분한다. 여러 요청을 크게 배치하면 서버의 전체 처리량은 증가하지만 개별 사용자는 자신의 차례를 더 오래 기다리므로 두 지표 사이에는 구조적인 Trade-off(상충 관계)가 생긴다.

강연자는 이를 여러 사람의 주문을 한 번에 조리하는 패스트푸드 매장에 비유한다. 매장은 한 번에 많은 주문을 처리해 전체 생산성을 높일 수 있지만, 가장 먼저 주문한 고객도 다른 주문이 함께 완성될 때까지 기다릴 수 있다. AI 서비스의 Fast Mode가 더 높은 가격을 요구하는 이유도 한 사용자에게 더 많은 자원을 할당하면 전체 처리량이 줄어들기 때문이다.

여러 배치 크기와 병렬화 방식, GPU 수, 서빙 프레임워크를 조합하면 각각 Interactivity와 Throughput이 다른 수많은 점이 나온다. 이 가운데 어느 한 지표도 다른 점에 밀리지 않는 최적 경계를 연결한 것이 Pareto Frontier(파레토 프런티어)다. 서비스 사업자는 요구되는 사용자당 토큰 속도 지점에서 각 하드웨어와 소프트웨어 조합의 Throughput을 비교해야 하며, 그래프의 특정 구간에서 우수한 장치가 다른 구간에서도 반드시 우수한 것은 아니다.

💡 [영상 참조] 강연자는 NVIDIA와 AMD GPU를 포함한 실제 추론 성능 곡선에서 Interactivity와 Throughput의 Pareto Frontier를 비교한다.
📺 원본 영상에서 해당 그래프의 구성과 조건을 확인할 수 있다.

이 그래프는 모델을 실제로 서빙하는 기업의 경제성을 역산하는 도구가 된다. 목표 응답 속도를 만족하는 범위에서 GPU당 처리량을 알면 필요한 장비 수와 예상 매출, 토큰당 원가를 계산할 수 있기 때문이다. 벤치마크를 읽을 때는 하드웨어 이름뿐 아니라 모델, 입력과 출력 길이, 병렬화 전략, 양자화 방식, vLLM 또는 SGLang 같은 소프트웨어 구성까지 함께 확인해야 한다.


Continuous Batching과 PagedAttention이 서버의 빈 공간을 줄인다

전통적인 Static Batching(정적 배칭)은 여러 요청을 한 묶음으로 시작한 뒤 가장 긴 요청이 끝날 때까지 다음 요청을 받지 못한다. 각 사용자의 프롬프트 길이와 출력 길이가 서로 다르기 때문에 먼저 끝난 요청의 자리가 비게 되고, 그 시간 동안 하드웨어가 낭비된다. Continuous Batching(연속 배칭)은 토큰 하나를 생성하는 매 Iteration(반복 단계)마다 스케줄을 다시 구성해, 끝난 요청의 자리에 대기 중인 새 요청을 즉시 넣는다.

Prefill과 Decode를 같은 배치에 섞을 수 있는 이유는 두 단계가 대부분 동일한 모델 가중치를 사용하기 때문이다. QKV Projection과 FFN은 모두 같은 종류의 행렬 연산으로 처리할 수 있으며, 요청별로 분리해야 하는 Attention만 적절히 관리하면 된다. 이를 통해 서버는 실행 슬롯을 지속적으로 채우고 유휴 시간을 줄일 수 있다.

PagedAttention은 운영체제의 Virtual Memory(가상 메모리)와 Page Table(페이지 테이블) 개념을 KV Cache에 적용한다. 모델이 답변을 얼마나 길게 생성할지 알 수 없다는 이유로 최대 출력 길이만큼 연속 메모리를 미리 예약하는 대신, 필요한 순간마다 고정 크기 블록을 추가로 할당한다. 물리적으로 떨어진 블록도 논리적으로 연속된 KV Cache처럼 관리할 수 있으므로 메모리 파편화와 과도한 사전 할당이 줄어든다.

💡 [영상 참조] 강연자는 논리 KV 블록과 실제 물리 메모리 블록의 연결 관계를 페이지 테이블 형태의 다이어그램으로 설명한다.
📺 원본 영상에서 확인할 수 있다.

다만 동적 할당은 메모리 부족 가능성을 없애는 기술이 아니다. 예상과 달리 많은 사용자가 동시에 최대 길이의 답변을 생성하면 물리 메모리가 소진될 수 있으며, 이때 일부 KV Cache를 외부 메모리로 내보내거나 요청 실행을 일시 중단해야 한다. 따라서 PagedAttention의 효율은 메모리 할당 알고리즘뿐 아니라 Eviction(축출), 재로딩과 Admission Control(요청 수용 제어)을 포함한 전체 스케줄러의 품질에 달려 있다.

Chunked Prefill은 첫 응답과 출력의 매끄러움을 조율한다

긴 Prefill이 실행 배치에 한꺼번에 들어오면 이미 답변을 생성 중인 Decode 요청이 오랫동안 기다릴 수 있다. 사용자는 답변이 시작된 뒤 갑자기 토큰 출력이 멈추는 현상을 민감하게 느끼기 때문에, 이는 TBT 또는 TPOT 품질의 악화로 나타난다. Chunked Prefill은 긴 입력을 작은 조각으로 나누어 여러 Iteration에 분산함으로써 이러한 간섭을 줄인다.

일반적인 우선순위는 진행 중인 Decode를 먼저 처리하고, 이전에 시작했지만 아직 끝나지 않은 Prefill 조각을 뒤이어 배치하며, 남는 자리에 새로운 Prefill 요청을 넣는 방식이다. 이 정책은 새로운 요청의 TTFT를 다소 희생하는 대신 이미 응답을 받고 있는 사용자의 토큰 흐름을 안정적으로 유지한다. 결국 좋은 스케줄링은 모든 요청을 똑같이 빠르게 만드는 것이 아니라, 사용자가 민감하게 느끼는 지연 지표와 서비스의 SLO(Service Level Objective)를 구분해 관리하는 작업이다.


Speculative Decoding은 싼 예측과 비싼 검증을 결합한다

Autoregressive Decode의 근본적인 한계는 다음 토큰이 결정되어야 그다음 토큰을 계산할 수 있다는 의존성이다. Speculative Decoding(투기적 디코딩)은 작은 Draft Model(초안 모델)이 여러 후보 토큰을 빠르게 순차 생성하고, 큰 Target Model(목표 모델)이 이 후보들을 한 번의 병렬 연산으로 검증하도록 만든다. 후보가 맞는 구간은 여러 토큰을 한꺼번에 확정하고, 틀린 지점부터 다시 초안을 생성한다.

이 방식의 이점은 큰 모델의 순차 Decode 횟수를 줄이고 검증을 Prefill과 유사한 병렬 연산으로 바꾼다는 데 있다. Draft Model의 예측 정확도가 높을수록 한 번에 승인되는 토큰 수가 늘어나지만, 모델 두 개를 메모리에 유지하고 번갈아 실행해야 한다는 부담도 생긴다. 이를 피하기 위해 동일한 모델의 중간 레이어에서 조기 예측을 만들거나, 여러 토큰을 병렬 생성하는 별도의 구조를 초안 생성기로 활용하는 연구가 이어지고 있다.

강연에서는 DeepSeek 계열의 방법이 현재 연산 자원 상태를 보고 검증할 후보 토큰 수를 동적으로 조절하는 사례도 소개한다. 시스템이 혼잡하면 뒤쪽 후보까지 검증해 버리는 낭비를 줄이고, 여유가 있을 때 더 많은 후보를 확인하는 식이다. 또한 확률적 생성에서는 반드시 최상위 토큰만 정답으로 인정할 필요가 없으므로, 허용 기준을 조절해 사용자가 알아채기 어려운 수준에서 품질과 속도의 균형을 맞출 가능성도 언급된다.

💡 [영상 참조] 강연자는 Draft Model이 생성한 복수 토큰을 큰 모델이 병렬로 검증하고, 불일치 지점에서 다시 생성하는 흐름을 도식으로 설명한다.
📺 원본 영상에서 검증 과정을 확인할 수 있다.


Prefill과 Decode를 물리적으로 분리하는 Disaggregation

Prefill과 Decode는 같은 모델을 사용하지만 Roofline 상에서 서로 멀리 떨어진 특성을 가진다. 하나의 GPU 풀에서 둘을 섞으면 긴 Prefill이 Decode의 토큰 간 지연을 악화시키고, Decode를 지나치게 우선하면 새 요청의 TTFT가 늘어난다. Prefill-Decode Disaggregation(프리필-디코드 분리)은 아예 Prefill 전용 풀과 Decode 전용 풀을 구성해 각 단계에 맞는 자원과 스케줄링 정책을 적용한다.

Prefill 풀에서 생성된 KV Cache는 Decode 풀로 전송해야 하므로 고대역폭 Interconnect(인터커넥트)가 중요하다. 작은 시스템에서는 전송과 관리 오버헤드가 이득을 상쇄할 수 있지만, 대규모 클러스터에서는 각 풀의 활용률을 높이고 엄격한 SLO를 만족하는 Goodput(유효 처리량)을 크게 늘릴 수 있다. 특히 입력이 길고 출력이 짧거나, 응답 속도 기준이 엄격한 서비스에서 효과가 커진다.

여기서 중요한 점은 분리 자체가 물리적인 총연산량을 줄이지는 않는다는 것이다. 모든 GPU가 이미 100% 활용되고 있다면 생성 가능한 이론적 총토큰 수가 자동으로 증가하는 것은 아니지만, 요구 지연시간을 만족하면서 제공할 수 있는 토큰 수는 늘어날 수 있다. 추론 비즈니스에서는 단순 Throughput보다 SLO를 통과한 Goodput이 매출로 연결되므로, 이러한 분리가 경제적으로 의미를 갖는다.


Agentic AI는 계산보다 기억을 더 많이 요구한다

Agentic AI에서는 하나의 사용자 요청이 여러 번의 LLM 호출과 도구 실행으로 확장된다. 강연이 소개한 분석에 따르면 세션당 평균 약 9.2개의 사용자 요청이 발생하고, 요청 하나를 처리하는 데 평균 약 7.8개의 도구 주도 LLM 단계와 약 10.8회의 도구 호출이 이어진다. 세션 단위로는 평균 약 82.5회의 LLM 실행 단계와 약 101.4회의 도구 호출에 해당하며, LLM 실행 단계의 약 89%는 사람의 새 입력이 아니라 도구 실행 결과에 의해 시작된다고 설명한다.

각 단계가 이전 문맥을 이어받으면서 KV Cache 수요는 일반적인 대화형 서비스보다 훨씬 커진다. 강연에서 인용한 사례에서는 한 번의 LLM 실행이 기존 Prefix 약 11만 9천 토큰을 다시 읽고, 새 입력 약 875토큰과 출력 약 214토큰을 처리하는 형태로 나타난다. 새롭게 계산하는 데이터보다 과거 문맥을 다시 불러오는 데이터가 압도적으로 많으므로, Agentic AI는 사실상 계산보다 기억과 전송에 더 강하게 묶인 워크로드가 된다.

사용자의 행동도 메모리 관리에 직접적인 영향을 미친다. 에이전트에게 작업을 맡긴 뒤 사용자가 다른 일을 하는 동안 발생하는 대기시간은 긴 꼬리 분포를 보이며, 장문맥 세션에서는 유지해야 하는 KV Cache가 약 40GB에 이를 수 있다. 분석에서는 전체 세션 시간의 약 92%를 사람의 대기가 차지한다고 소개되는데, 이는 비싼 HBM에 KV Cache를 계속 유지하는 것이 매우 큰 낭비가 될 수 있음을 보여준다.

따라서 시스템은 사용자가 곧 돌아올 가능성이 높은 초기 5~10분가량을 일종의 Golden Time(골든 타임)으로 보고 캐시를 유지한 뒤, 장기 이탈 가능성이 높으면 DRAM이나 SSD로 내보내는 정책을 사용할 수 있다. 가벼운 머신러닝 모델로 사용 시간대와 작업 종류 등을 분석하면 정확한 복귀 시각은 몰라도 단시간 내 복귀 여부는 어느 정도 예측할 수 있다고 강연자는 설명한다. 이 단계에서 추론 인프라는 단순한 GPU 스케줄러를 넘어 사용자 행동과 메모리 계층을 함께 최적화하는 시스템이 된다.


단일 만능 GPU에서 이기종 토큰 팩토리로

강연의 전망은 모든 연산을 동일한 GPU에서 처리하는 Homogeneous Computing(동종 컴퓨팅)의 시대가 점차 끝나갈 수 있다는 데 모인다. Prefill, Attention, FFN, Decode와 KV Cache 저장은 각각 요구하는 연산량, 메모리 용량과 대역폭이 다르기 때문에, 각 단계에 특화된 하드웨어를 연결하는 Heterogeneous Computing(이기종 컴퓨팅)이 더 효율적일 수 있다. Jensen Huang이 사용하는 Token Factory(토큰 공장)라는 표현도 단순히 토큰을 많이 생산한다는 의미를 넘어, 생산 공정의 각 단계를 서로 다른 장치에 배치하는 구조로 해석할 수 있다.

강연에서는 Groq LPU가 낮은 산술 집약도 영역에서 높은 성능을 내는 사례를 Roofline 그래프로 설명한다. 다만 칩 내부 SRAM 용량이 제한적이므로 거대한 KV Cache를 담는 Attention 전체보다는 KV Cache가 필요하지 않은 FFN 실행에 더 적합할 수 있다. MoE에서는 각 Expert로 분산되는 토큰 수가 작아져 FFN의 산술 집약도가 낮아질 수 있으므로, 이러한 LPU의 특성이 오히려 잘 맞는다는 분석이다.

💡 [영상 참조] 강연자는 NVIDIA 계열 GPU와 Groq LPU의 Roofline을 비교하며, 낮은 산술 집약도 구간에서 각 장치의 상대적 강점이 어떻게 달라지는지 설명한다.
📺 원본 영상에서 해당 비교 그래프를 확인할 수 있다.

향후에는 높은 연산 성능을 가진 장치, 대용량 메모리를 가까이 둔 장치, 외부 저장장치에서 KV Cache를 빠르게 가져오는 장치가 하나의 서빙 파이프라인을 구성할 수 있다. HyperAccel 역시 첫 제품에서는 가격과 전력을 주요 병목으로 설정했지만, 다음 제품은 Agentic AI의 메모리 중심 특성에 맞추는 방향을 검토하고 있다고 밝힌다. 경쟁의 핵심은 어느 칩이 모든 일을 가장 잘하느냐가 아니라, 어느 단계에서 확실한 우위를 제공해 전체 파이프라인에 들어갈 수 있느냐로 이동할 가능성이 크다.

AI가 반도체 설계와 검증을 바꾸는 방식

반도체 설계는 RTL(Register-Transfer Level) 작성, 기능 검증, 물리 설계와 P&R(Place and Route) 등 여러 단계로 구성된다. 이 가운데 검증은 결과의 옳고 그름을 비교적 명확하게 판정할 수 있는 소프트웨어 중심 영역이어서 AI 자동화가 빠르게 도입될 가능성이 있다. 설계 역시 Verilog와 같은 언어로 표현되지만, 실제 하드웨어 구조와 전력·면적·성능의 Trade-off를 이해해야 하므로 전체 자동화에는 더 많은 시간이 필요하다.

그럼에도 칩 설계에는 시뮬레이션과 검증 도구가 이미 잘 갖춰져 있어 AI가 생성한 설계를 반복적으로 시험하고 개선하기 좋은 조건이 존재한다. 강연자는 단일 단계만 잘한다고 좋은 반도체가 나오는 것은 아니며, 논리 설계부터 트랜지스터 수준의 물리 구현까지 전체 흐름이 결합되어야 한다고 강조한다. 따라서 AI 설계 자동화는 한 번에 인간 엔지니어를 대체하기보다 검증 가능한 부분부터 침투하며 설계 주기와 탐색 범위를 바꾸는 방식으로 진행될 가능성이 높다.


마무리 / 핵심 정리

이번 강연의 가장 중요한 메시지는 LLM 추론 성능이 단순한 GPU 연산량으로 결정되지 않는다는 점이다. Prefill은 같은 가중치를 많은 토큰에 재사용하므로 연산 병목에 가까워지는 반면, Decode와 Attention은 매 단계마다 가중치와 KV Cache를 읽어야 해 메모리 병목에 빠지기 쉽다. Roofline Analysis는 이 차이를 산술 집약도, 연산 성능과 메모리 대역폭의 관계로 설명하는 공통 언어를 제공한다.

KV Cache는 모델이 문맥을 유지하게 만드는 핵심 자산이지만, 장문맥과 다중 사용자, Agentic AI가 결합하면 모델 가중치보다 더 큰 메모리 수요를 만들 수 있다. GQA와 MLA, 양자화, Prefix Caching, PagedAttention과 계층형 메모리는 모두 이 기억을 더 작게 만들거나, 더 많이 재사용하거나, 더 저렴한 장소로 옮기려는 접근이다. 여기에 Continuous Batching, Chunked Prefill, Speculative Decoding과 Prefill-Decode Disaggregation이 더해지면서 추론 시스템은 칩 하나가 아니라 하드웨어와 소프트웨어가 결합된 거대한 최적화 문제로 변한다.

결국 AI 인프라의 경쟁력은 최대 FLOPS 같은 단일 사양보다 목표 응답 속도를 만족하면서 전력과 장비당 얼마나 많은 유효 토큰을 생산하는지에 의해 평가되어야 한다. Agentic AI가 확대될수록 계산보다 기억과 데이터 이동의 비중이 커지고, GPU·LPU·메모리 가속기와 저장장치가 역할을 나누는 이기종 토큰 공장이 등장할 가능성이 높다. 모델의 발전만큼이나 그 모델을 경제적으로 운영하는 추론 엔지니어링이 AI 산업의 새로운 프런티어가 된 것이다.


📚 출처 및 참고

구분내용
원본 영상EP 112. AI 반도체 안에서 일어나는 일들: KV Cache부터 Roofline까지
채널AI Frontier Korea (노정석)
영상 길이약 104분
리포트 작성2026-09-02
작성 방식YouTube 영상 STT 변환 후 문맥 교정 및 에디팅

💬 본 리포트는 영상 내용을 바탕으로 재구성되었다. 일부 고유명사와 전문 용어는 문맥에 따라 교정했으며, 화면에만 표시된 수식과 세부 수치는 포함되지 않았을 수 있다. 정확한 내용은 원본 영상을 참조해야 한다.