KV Cache Offloading Analysis
KV ์บ์ ์คํ๋ก๋ฉ ์์คํ ์ฌ์ธต ๋ถ์
Memory Hierarchy ยท Prefix Reuse ยท PD Disaggregation ยท LMCache ยท Mooncake ยท CacheGen ยท CXL-PNM
KV ์บ์ ์คํ๋ก๋ฉ์ GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ค ๋ด๊ธฐ์ง ์๋ KV ์บ์๋ฅผ CPU DRAMยทCXLยทNVMe ๊ฐ์ ํ์ ๋ฉ๋ชจ๋ฆฌ ํฐ์ด๋ก ๋ด๋ ค ๋ณด๊ดยท์ฌ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ ๋๋ค. ๊ธด ๋ฌธ๋งฅยทํฐ ๋ฐฐ์นยท๋ฉํฐํด ์ํฌ๋ก๋์์ KV ์บ์๊ฐ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋์ด์ค ๋งํผ ์ปค์ง๋ฉด์, '์ฐ์ฐ์ ์ ์ฅ์ผ๋ก ๋ฐ๊พธ๋(trade computation for storage)' ์ด ์ ๊ทผ์ด LLM ์๋น์ ํต์ฌ ์ธํ๋ผ๊ฐ ๋์์ต๋๋ค. ๋ณธ ๋ฌธ์๋ ์ ์คํ๋ก๋ฉํ๋(๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต) โ ๋ ๊ฐ์ง ์ฐ์(ํ๋ฆฌํฝ์ค ์ฌ์ฌ์ฉยทPD ๋ถ๋ฆฌ) โ ์ฃผ์ ์์คํ (LMCacheยทMooncakeยทCacheGen) โ ํต์ฌ ํธ๋ ์ด๋์คํ(์ฌ๊ณ์ฐ vs ์ ์ก) โ ํ๋์จ์ด ํ๋ก ํฐ์ด(CXLยทPNM)์ ์ ๋ขฐ์ฑ ๊ด์ ์ ์์๋ก ๋ถ์ํฉ๋๋ค.
์ด ๋ฌธ์๋ KV ์คํ๋ก๋ฉ์ ๋จ์ํ ์ ์ฅ ๊ณต๊ฐ ํ์ฅ์ด ์๋๋ผ, ์์ง ๊ฐ ์บ์ ๊ณต์ ยท๋ถ๋ฆฌํ ์๋นยท์ ์ก ์์ถยท๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ์ค๊ณ๊ฐ ๋ง๋๋ ์ง์ ์ผ๋ก ๋ด ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ณ ์์คํ ์ ๊ตฌํ ์ฐจ์ด๋ณด๋ค ์ด๋ค ์ํฌ๋ก๋์์ ์ด๋ค ํฐ์ด๊ฐ ๋ณ๋ชฉ์ด ๋๋์ง์ ์ด์ ์ ๋ก๋๋ค.
1. ์ KV ์บ์๋ฅผ ์คํ๋ก๋ฉํ๋ โ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต
KV ์บ์๋ ๊ณผ๊ฑฐ ํ ํฐ์ Key/Value๋ฅผ ์ ์ฅํด ์ฌ๊ณ์ฐ์ ํผํจ์ผ๋ก์จ ๋์ฝ๋ฉ์ ๋น ๋ฅด๊ฒ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ํฌ๊ธฐ๊ฐ ์ํ์ค ๊ธธ์ดยท๋ฐฐ์นยท๋ ์ด์ด์ ๋น๋กํด ์ปค์ง๋ฉด์, ๊ธด ๋ฌธ๋งฅ์ด๋ ํฐ ๋ฐฐ์น์์๋ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋์ด GPU HBM ์ฉ๋์ ์ด๊ณผํฉ๋๋ค.
๊ทธ๋ฆผ 1. KV ์บ์๊ฐ GPU๋ฅผ ์ด๊ณผํ๋ ๋ฌธ์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต(HBMโDRAMโCXLโNVMe)
์ฐ์ฐ์ ์ ์ฅ์ผ๋ก ๋ฐ๊พผ๋ค
-
๋ฌธ์ ๊ท๋ชจ โ ์๋ฅผ ๋ค์ด 70B ๋ชจ๋ธยท128K ๋ฌธ๋งฅยท๋ฐฐ์น 32์์๋ KV ์บ์๋ง 150GB๋ฅผ ๋๊ฒจ H100 VRAM์ ์ด๊ณผํฉ๋๋ค. KV ์บ์๋ ์ข ์ข ๋ชจ๋ธ ๊ฐ์ค์น๋ณด๋ค ์ปค์ง๋๋ค.
-
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต โ GPU HBM(๋น ๋ฅด์ง๋ง ์์)์์ CPU DRAM, CXL ๋ฉ๋ชจ๋ฆฌ, NVMe SSD(๋๋ฆฌ์ง๋ง ํผ)๋ก ๋ด๋ ค๊ฐ์๋ก ์ฉ๋์ ์ปค์ง๊ณ ๋์ญํญ์ ์์์ง๋๋ค.
-
๋ ๊ฐ์ง ์ฐ์ โ (1) ์ฉ๋ ํ์ฅ: ๋ ๊ธด ๋ฌธ๋งฅยทํฐ ๋ฐฐ์น๋ฅผ ์์ฉ. (2) ์ฌ์ฌ์ฉ: ๊ฐ์ ํ๋ฆฌํฝ์ค์ KV๋ฅผ ์บ์ฑํด ์ฌ๊ณ์ฐ์ ํผํจ.
-
ํต์ฌ ํธ๋ ์ด๋์คํ โ KV๋ฅผ ๋ค์ '๊ณ์ฐ'ํ ์ง, ์ ์ฅํด๋ ๊ฑธ '์ ์ก'ํ ์ง์ ์ ํ์ ๋๋ค. ์ ์ก์ด ์ฌ๊ณ์ฐ๋ณด๋ค ์ธ๋ฉด ์คํ๋ก๋ฉ์ด ์ด๋์ด์ง๋ง, ๋๋ฆฐ ํฐ์ด์ผ์๋ก ์ ์ก ๋์ญํญ์ด ๋ณ๋ชฉ์ด ๋ฉ๋๋ค. ๋ฉํฐํด QAยทRAGยท๋ฌธ์ ๋ถ์์ฒ๋ผ ๊ธด ๊ณตํต ๋ฌธ๋งฅ์ ๋ฐ๋ณต ์ฌ์ฉํ๋ ์ํฌ๋ก๋์์ ํนํ ํจ๊ณผ์ ์ ๋๋ค.
2. ์คํ๋ก๋ฉ์ ๋ ๊ฐ์ง ์ฐ์
KV ์คํ๋ก๋ฉ์ ํฌ๊ฒ ๋ ๋งฅ๋ฝ์์ ์ฐ์ ๋๋ค. ํ๋๋ ์ฌ๋ฌ ์ง์๊ฐ ๊ณต์ ํ๋ ๋ฌธ๋งฅ์ KV๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ prefill๊ณผ decode๋ฅผ ๋ค๋ฅธ ํ๋์จ์ด๋ก ๋ถ๋ฆฌํ๋ฉด์ KV๋ฅผ ์ ์กํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆผ 2. ํ๋ฆฌํฝ์ค ์ฌ์ฌ์ฉ(cross-query)๊ณผ Prefill-Decode ๋ถ๋ฆฌ
(1) ํ๋ฆฌํฝ์ค ์ฌ์ฌ์ฉ (cache offloading)
-
์ฌ๋ฌ ์ง์๊ฐ ๊ณต์ ํ๋ ๋ฌธ๋งฅ(์์คํ ํ๋กฌํํธ, RAG ๋ฌธ์, ๋ฉํฐํด ๋ํ ์ด๋ ฅ)์ KV๋ฅผ ์ ์ฅํด ๋๊ณ ์ฌ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ณต๋๋ ๊ธด ๋ฌธ๋งฅ์ ํนํ ๊ฐ๋ ฅํฉ๋๋ค.
-
GPU์ ํ๋ฆฌํฝ์ค ์บ์๋ ์ฉ๋์ด ์์ ๊ธ๋ฐฉ ๋ฐ๋ ค๋๋ฏ๋ก, CPUยทCXLยทNVMe๋ก ๋ด๋ ค์ผ ๋ ๋ง์ด ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
ํจ๊ณผ โ ๊ณตํต ๋ฌธ๋งฅ์ ํ๋ฆฌํ์ ๊ฑด๋๋ฐ์ด TTFT(์ฒซ ํ ํฐ ์ง์ฐ)๋ฅผ ์ค์ด๊ณ GPU ์ฐ์ฐ์ ์ ์ฝํฉ๋๋ค. ์ค์ ๋ก LMCache ์ฌ๋ก์์ ๋์คํฌ ์คํ๋ก๋ฉ ์ cold TTFT 6.3์ด๊ฐ warm 0.15์ด๋ก ๋จ์ด์ง ๋ณด๊ณ ๊ฐ ์์ต๋๋ค.
(2) Prefill-Decode ๋ถ๋ฆฌ (PD Disaggregation)
-
๊ณ์ฐ์ง์ฝ์ prefill๊ณผ ๋ฉ๋ชจ๋ฆฌ์ง์ฝ์ decode๋ฅผ ๋ค๋ฅธ ๋ ธ๋/ํ๋์จ์ด๋ก ๋ถ๋ฆฌํ๊ณ , prefill์ด ์์ฑํ KV๋ฅผ decode ๋ ธ๋๋ก ์ ์กํฉ๋๋ค.
-
prefill์ ์ฐ์ฐ์ด, decode๋ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ๋ณ๋ชฉ์ด๋ฏ๋ก, ๋ถ๋ฆฌํ๋ฉด ๊ฐ ๋จ๊ณ๊ฐ ๊ฐ์ญ ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ผยท์ต์ ํ๋์ด ์์ ํ์ฉ์ด ๋์์ง๋๋ค.
๋ ์ฐ์ ๋ชจ๋ 'KV๋ฅผ GPU ๋ฐ์ ๋๊ณ ๋ ธ๋ ๊ฐ ๋น ๋ฅด๊ฒ ์ฎ๊ธด๋ค'๋ ์ ์ ๋์ผํ๋ฉฐ, ๋ฐ๋ผ์ ๊ณ ์ ์ ์ก ์์ง๊ณผ ๋ถ๋ฆฌํ KV ์บ์ ํ์ด ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋ฉ๋๋ค.
3. ์ฃผ์ KV ์คํ๋ก๋ฉ ์์คํ
๊ทธ๋ฆผ 3. LMCache, Mooncake, CacheGen์ ํน์ง๊ณผ ์ํธ ๊ฒฐํฉ
LMCache โ KV ์บ์ฑ ๋ ์ด์ด (arXiv 2510.09665)
vLLMยทSGLang ๊ฐ์ ์์ง์์ KV ์บ์๋ฅผ ์ถ์ถํด GPU ๋ฐ(CPUยท๋์คํฌยท์๊ฒฉ)์ ์ ์ฅํ๊ณ ์์ง/์ง์ ๊ฐ์ ๊ณต์ ํ๋, ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์คํ์์ค KV ์บ์ฑ ์๋ฃจ์ ์ ๋๋ค. ์บ์ ์คํ๋ก๋ฉ(ํ๋ฆฌํฝ์ค ์ฌ์ฌ์ฉ)๊ณผ PD ๋ถ๋ฆฌ(์์ง/GPU ๊ฐ KV ์ ์ก)๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค. ๋ฐฐ์น ์ ์กยท๊ณ์ฐ/IO ํ์ดํ๋ผ์ด๋์ผ๋ก ๋ฐ์ดํฐ ์ด๋์ ์ต์ ํํ๊ณ , ๋ชจ๋์ ์ปค๋ฅํฐ๋ก ์์ง์ ๋น ๋ฅธ ์งํ์ ๋ถ๋ฆฌ๋๋ฉฐ, pinningยทlookupยทcleanupยท์ด๋ยท์์ถ ๊ฐ์ ์ ์ด API๋ฅผ ์ ๊ณตํฉ๋๋ค. vLLM๊ณผ ๊ฒฐํฉ ์ ๋ฉํฐ๋ผ์ด๋ QAยท๋ฌธ์ ๋ถ์ ๋ฑ์์ ์ต๋ 15๋ฐฐ ์ฒ๋ฆฌ๋ ํฅ์์ด ๋ณด๊ณ ๋ฉ๋๋ค.
Mooncake โ KVCache ์ค์ฌ ๋ถ๋ฆฌ ์ํคํ ์ฒ (arXiv 2407.00079, FAST 2025 Best Paper)
Moonshot AI์ Kimi ์๋น์ค๋ฅผ ๋ ๋ฐ์น๋ ์๋น ํ๋ซํผ์ผ๋ก, prefill๊ณผ decode ํด๋ฌ์คํฐ๋ฅผ ๋ถ๋ฆฌํ๊ณ GPU ํด๋ฌ์คํฐ์ ์ ํด CPUยทDRAMยทSSDยทRDMA ์์์ ๋ฌถ์ด ๋ถ๋ฆฌํ KVCache ํ(Mooncake Store)์ ๊ตฌ์ฑํฉ๋๋ค. ํต์ฌ์ ์ฒ๋ฆฌ๋์ ์ต๋ํํ๋ฉด์ ์ง์ฐ SLO๋ฅผ ์งํค๋ KVCache ์ค์ฌ ์ค์ผ์ค๋ฌ์ด๋ฉฐ, ๊ณผ๋ถํ ์ํฉ์์๋ ์์ธก ๊ธฐ๋ฐ ์กฐ๊ธฐ ๊ฑฐ์ (early rejection) ์ ์ฑ ์ผ๋ก ๋ญ๋น๋ฅผ ์ค์ ๋๋ค. KVCache๋ฅผ ๋ ์ด์ด ๋จ์๋ก ์คํธ๋ฆฌ๋ฐ ์ ์กํด ์ ์ก๊ณผ ๊ณ์ฐ์ ์ค์ฒฉํ๊ณ , CPU ๋ฉ๋ชจ๋ฆฌ์์๋ KV๋ฅผ ํ์ด์ง ๋ธ๋ก์ผ๋ก ์ ์ฅํ๋ ํ๋ฆฌํฝ์ค ํด์๋ก ์ค๋ณต์ ์ ๊ฑฐํฉ๋๋ค. ๊ธด ๋ฌธ๋งฅ์์ ์ต๋ 525% ์ฒ๋ฆฌ๋ ํฅ์, ์ค์ ์ํฌ๋ก๋์์ 75% ๋ ๋ง์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. '์ฐ์ฐ์ ์ ์ฅ์ผ๋ก ๋ฐ๊พผ๋ค'๋ ์๋ฆฌ๋ฅผ ๋ถ์ฐ ์์คํ ์ผ๋ก ๊ตฌํํ ์ฌ๋ก์ ๋๋ค.
CacheGen โ KV ์บ์ ์์ถยท์คํธ๋ฆฌ๋ฐ (SIGCOMM 2024)
์ ์ฅยท์ ์กํ KV ์บ์ ์์ฒด๋ฅผ ์๊ฒ ๋ง๋๋ ๋ฐ ์ง์คํฉ๋๋ค. KV ์บ์์ ๋ถํฌ ํน์ฑ์ ํ์ฉํ ์ปค์คํ ํ ์ ์ธ์ฝ๋๋ก KV๋ฅผ ๋ ์์ ๋นํธ์คํธ๋ฆผ์ผ๋ก ์ธ์ฝ๋ฉํ๋ฉฐ(10๊ฐ ํ ํฐ ๊ทธ๋ฃน์ ์ต์ปค ํ ํฐ์ ๊ธฐ์ค์ผ๋ก ๋ธํ๋ฅผ ๊ธฐ๋กํ๋ change-based ์ธ์ฝ๋ฉ), ๊ฐ์ฉ ๋์ญํญ์ ๋ฐ๋ผ ๋ถ๋ถ๋ณ ์์ถ ์์ค์ ์กฐ์ ํ๊ฑฐ๋ ๋์ญํญ์ด ๋ถ์กฑํ๋ฉด ์ฆ์์์ ์ฌ๊ณ์ฐ์ผ๋ก ์ ํํฉ๋๋ค. KV ์บ์ ํฌ๊ธฐ๋ฅผ 3.5~4.3๋ฐฐ ์ค์ด๊ณ ๋ฌธ๋งฅ fetchยท์ฒ๋ฆฌ ์ง์ฐ์ 3.2~3.7๋ฐฐ ์ค์ด๋ฉด์ ํ์ง ์ ํ๋ ๋ฏธ๋ฏธํ๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค.
์ํ๊ณ ํตํฉ โ ์ด ์์คํ ๋ค์ ์๋ก ๊ฒฐํฉ๋๋ค. LMCache๋ CacheGen ์์ถ์ ๋ด์ฅํ๊ณ Mooncake Store๋ฅผ ์๊ฒฉ ๋ฐฑ์๋๋ก ์ฐ๋ํ๋ฉฐ, NVIDIA Dynamo์ NIXL ์ ์ก ๊ณ์ธต๊ณผ๋ KV ๋ธ๋ก ์ด๋ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๊ณต์ ํ๋ค. ๊ณตํต ๋ถ๋ชจ๋ KV๋ฅผ '์ด๋์ ๋์งยท์ด๋ป๊ฒ ์์ถยท์ ์กํ ์งยท์ธ์ ์ฌ์ฌ์ฉ/์ฌ๊ณ์ฐํ ์ง' ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
์์คํ ๋น๊ต
| ์์คํ | ์ฃผ๋ ๋ฐฉ์ | ์ ์ฅ ์์น | ๊ฐ์ | ์ฃผ์์ |
|---|---|---|---|---|
| LMCache | ์์งยท์ง์ ๊ฐ KV ๊ณต์ | GPU ๋ฐ CPUยทDRAMยท์คํ ๋ฆฌ์งยท๋คํธ์ํฌ | vLLMยทSGLang ์ฐ๋, batched movement, control API | ์บ์ hit ratio์ ๋ฐฑ์๋ ๋์ญํญ์ ๋ฏผ๊ฐ |
| Mooncake | Prefill-Decode ๋ถ๋ฆฌ | GPU ํด๋ฌ์คํฐ์ CPUยทDRAMยทSSDยทRDMA | KVCache ์ค์ฌ ์ค์ผ์ค๋ง, early rejection, ์ฅ๋ฌธ๋งฅ ์ต์ ํ | ์ค๋ฒ๋ก๋ ์ํฉ๊ณผ ์ค์ผ์ค๋ง ํ์ง์ ์์กด |
| CacheGen | KV ์์ถยท์คํธ๋ฆฌ๋ฐ | ๋คํธ์ํฌ ์ ์ก ๊ฒฝ๋ก | ์ ์ํ ์์ถ, ์ฌ๊ณ์ฐ fallback | ์์ถ๋ฅ ๊ณผ ํ์ง์ ๊ท ํ ํ์ |
| CXL-PNM | ๋ฉ๋ชจ๋ฆฌ ๊ทผ์ฒ ์ฐ์ฐ | CXL ๋ฉ๋ชจ๋ฆฌ | recall ์ ๊ฑฐ, ์ด์ฅ๋ฌธ๋งฅ ๋์ | ์ฐ๊ตฌ ๋จ๊ณ, ํ๋์จ์ด ์ ์ ํผ |
4. ํต์ฌ ํธ๋ ์ด๋์คํ โ ์ฌ๊ณ์ฐ vs ์ ์ก
์คํ๋ก๋ฉ์ ์ฑํจ๋ ํ๋์ ์ง๋ฌธ์ผ๋ก ์์ถ๋ฉ๋๋ค. KV๋ฅผ ๋ค์ ๊ณ์ฐํ๋ ๋น์ฉ๊ณผ, ์ ์ฅ๋ KV๋ฅผ ๋ถ๋ฌ์ค๋ ์ ์ก ๋น์ฉ ์ค ๋ฌด์์ด ๋ ์ผ๊ฐ?
๊ทธ๋ฆผ 4. ์ฌ๊ณ์ฐ vs ์ ์ก์ ํธ๋ ์ด๋์คํ์ ์ ์ก ๋ณ๋ชฉ์ ์ค์ด๋ ๊ธฐ๋ฒ๋ค
์ ์ก ๋ณ๋ชฉ์ ์ค์ด๋ ๊ธฐ๋ฒ
| ๊ธฐ๋ฒ | ๋ด์ฉ |
|---|---|
| ์์ถ | KV๋ฅผ ์๊ฒ ์ธ์ฝ๋ฉ(CacheGenยท์์ํ) โ ์ ์ก๋ ๊ฐ์ |
| ๋ ์ด์ด๋ณ ์คํธ๋ฆฌ๋ฐ | ๋ ์ด์ด ๋จ์๋ก ์ ์กยท๊ณ์ฐ์ ์ค์ฒฉ(overlap) โ ์ ์ก ์ง์ฐ ์๋ |
| ํ๋ฆฌํ์นยท์บ์ฑ | ๊ณง ์ธ KV๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋, ์์ฃผ ์ฐ๋ hot KV๋ ์์ ํฐ์ด์ ์ ์ง |
| ํ๋ฆฌํฝ์ค ํด์ยท์ค๋ณต์ ๊ฑฐ | ๊ฐ์ ๋ฌธ๋งฅ์ KV๋ฅผ ํด์๋ก ์๋ณํด ํ ๋ฒ๋ง ์ ์ฅ |
| cache-aware ๋ผ์ฐํ | ํด๋น KV๊ฐ ์๋ ๋ ธ๋๋ก ์์ฒญ์ ๋ณด๋ด ์ ์ก ์์ฒด๋ฅผ ์ค์ |
ํธ๋ ์ด๋์คํ์ ํต์ฌ
-
์คํ๋ก๋ฉ์ด ํญ์ ์ด๋์ ์๋๋๋ค โ ์ ์ฅ๋ KV๋ฅผ ๋ถ๋ฌ์ค๋ ์ ์ก ์๊ฐ์ด ์ฌ๊ณ์ฐ ์๊ฐ๋ณด๋ค ๊ธธ๋ฉด ์คํ๋ ค ์ํด์ ๋๋ค. ๊ฒฐ์ ๋ณ์๋ ํฐ์ด ๋์ญํญยทKV ํฌ๊ธฐยทํ๋ฆฌํ ์ฐ์ฐ๋ยท์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ(hit ratio)์ ๋๋ค.
-
CacheGen์ ์๋ฆฌํ ์ ์ ๋์ญํญ์ด ๋ถ์กฑํ๋ฉด ์์ถ๋ฅ ์ ๋์ด๊ฑฐ๋ ์์ ์ฌ๊ณ์ฐ์ผ๋ก ์ ํํ๋ ์ ์์ฑ์ ๋๋ค. Mooncake์ ๋ ์ด์ด๋ณ ์คํธ๋ฆฌ๋ฐ์ ์ ์ก๊ณผ ๊ณ์ฐ์ ๊ฒน์ณ ์ง์ฐ์ ์จ๊น๋๋ค.
-
ํ๋ฆฌํฝ์ค ์บ์ hit ratio๊ฐ ๊ด๊ฑด์ ๋๋ค โ ์ฐ์ ์์ ํํ ๋ฌธ๋งฅ truncation์ด hit ratio๋ฅผ ์ ๋ฐ์ผ๋ก ๋จ์ด๋จ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค. ๊ฒฐ๊ตญ ๊ณ์ฐยท๋์ญํญยท์ฉ๋์ 3์ ๊ท ํ์ ์ํฌ๋ก๋์ ๋ง์ถฐ ์ก๋ ๊ฒ์ด ์์คํ ์ ๋ชฉํ์ ๋๋ค.
์ฅ๋จ์
- ์ฅ์ โ ๊ฐ์ ํ๋ฆฌํฝ์ค๋ฅผ ๋ฐ๋ณต ์ฐ๋ ์ํฌ๋ก๋์์๋ TTFT์ GPU ์ฐ์ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์๊ณ , CPUยทCXLยทSSD๊น์ง ๊ณ์ธตํํ๋ฉด ์ฉ๋ ํ์ฅ์ด ์ฝ์ต๋๋ค.
- ํ๊ณ โ ํ์ ํฐ์ด๋ก ๊ฐ์๋ก ์ ์ก ๋์ญํญ๊ณผ ์ง์ฐ์ด ๋ณ๋ชฉ์ด ๋๋ฉฐ, hit ratio๊ฐ ๋ฎ๊ฑฐ๋ ๋ฌธ๋งฅ์ด ์์ฃผ ๋ฐ๋๋ฉด ์ด๋์ด ๊ธ๊ฒฉํ ์ค์ด๋ญ๋๋ค.
- ์ด์ ๋ณต์ก์ฑ โ ์บ์ ์ผ๊ด์ฑ, ๋ฐฑ์๋ ์ ํ, ์์ถยทํ๋ฆฌํ์น ์ ์ฑ ์ ํจ๊ป ํ๋ํด์ผ ํ๋ฏ๋ก ๋จ์ ์บ์๋ณด๋ค ์์คํ ํตํฉ ๋น์ฉ์ด ํฝ๋๋ค.
5. ํ๋์จ์ด ํ๋ก ํฐ์ด โ CXL๊ณผ Processing-Near-Memory
์คํ๋ก๋ฉ์ ๊ทผ๋ณธ ์ ์ฝ์ ํ์ ํฐ์ด๋ก ๊ฐ๋ ์ ์ก ๋์ญํญ์ ๋๋ค. ์ฌ๊ธฐ์ CXL์ด PCIe์ ํ๊ณ๋ฅผ ๋๋ ์๋ก์ด ํฐ์ด๋ก ์ฃผ๋ชฉ๋ฐ๊ณ , ๋ ๋์๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณ์์ ์ฐ์ฐํ๋ PNM์ด ์ ์ก ์์ฒด๋ฅผ ์์ ๋ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ๊ฐ ์ด์ด์ง๋๋ค.
๊ทธ๋ฆผ 5. ๋์ญํญ ๋น๊ต, CXL-PNM, ์คํ๋ก๋ฉ ๊ณ๋ณด, ๊ทธ๋ฆฌ๊ณ ์ ๋ขฐ์ฑ ๊ด์
์ CXL์ธ๊ฐ
-
๋์ญํญ โ HBM(2TB/s ์ด์)์ด ๊ฐ์ฅ ๋น ๋ฅด์ง๋ง ์๊ณ , ๊ธฐ์กด PCIe ์คํ๋ก๋ฉ์ 8~16GB/s๋ก ๋ณ๋ชฉ์ ๋๋ค. CXL์ 64GB/s๊ธ์ ๋ ๋์ ๋์ญํญ์ ์บ์ ์ผ๊ด์ฑ๊ณผ byte ๋จ์ ์ ๊ทผ, ๋ฉ๋ชจ๋ฆฌ ํ๋ง์ ์ ๊ณตํฉ๋๋ค.
-
CXL ๋ฉ๋ชจ๋ฆฌ๊ฐ PCIe๋ณด๋ค ๋น ๋ฅด๋ฉด CPU-GPU ์ ์ก ๋์ญํญ์ DDR ์์ค์ผ๋ก ์ ์งํ ์ ์๋ค๋ ๋ณด๊ณ ๊ฐ ์์ผ๋ฉฐ, CXL 4.0์ 128 GT/s์ ๋ ๋จ์ 100TB+ ํ๋ง์ผ๋ก ์คํ๋ก๋ฉ ์ฉ๋ ํ๊ณ๋ฅผ ํฌ๊ฒ ๋ํ๋๋ค.
CXL-PNM (Processing-Near-Memory)
ํ ๊ฑธ์ ๋ ๋์๊ฐ ๋ฐฉํฅ์ ๋๋ค. ์ ์ฒด KV ์บ์๋ฅผ CXL ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผ์ํค๊ณ (non-eviction, 1M ํ ํฐ๊ธ ๋ฌธ๋งฅ), CXL ๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์ ๊ฐ์๊ธฐ๊ฐ ํ ํฐ ํ์ด์ง ์ ํ ๊ฐ์ ์ฐ์ฐ์ ์ง์ ์ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด KV๋ฅผ GPU๋ก ๋๋ก ๋ถ๋ฌ์ค๋ ๋น์ผ recall์ ์์ ๊ณ ๋ ํฐ ๋ฐฐ์น๊ฐ ๊ฐ๋ฅํด์ง๋๋ค โ ๋ฐ์ดํฐ ๊ณ์์ ์ฐ์ฐํจ์ผ๋ก์จ ์ ์ก ์์ฒด๋ฅผ ์ฐ์ฐ์ผ๋ก ๋์ฒดํ๋ ์ ์ ๋๋ค. ์ด๋ ์คํ๋ก๋ฉ ๊ณ๋ณด์ ํ์ฌ ์ข ์ฐฉ์ ์ ๋๋ค: vLLM(PagedAttention) โ LMCache โ Mooncake โ CXL-KV โ CXL-PNM.
๊ด๋ จ ๊ธฐ์
- vLLM PagedAttention โ KV ๋ธ๋ก์ ํ์ด์ง์ฒ๋ผ ๊ด๋ฆฌํด ์ฅ๋ฌธ๋งฅ ์๋น์ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
- SGLang โ ์์ง ์์ค์์ KV ๊ณต์ ยท์ ์ก ๊ฒฝ๋ก๋ฅผ ๋ถ์ด๊ธฐ ์ฌ์ด ๋ํ ์๋น ๋ฐํ์์ ๋๋ค.
- FlexGen / InfiniGen โ KV๋ฅผ ๋์คํฌ๋ ์์ธก ๊ธฐ๋ฐ prefetch๋ก ๋ค๋ฃจ๋ ์ด๊ธฐ ์คํ๋ก๋ฉ ๊ณ์ด๋ก, ํ์ ์์คํ ์ ๋น๊ต ๊ธฐ์ค์ด ๋ฉ๋๋ค.
- CXL 4.0 โ ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ํ๊ณผ ๋์ ๋งํฌ ๋์ญํญ์ ์ ๊ณตํ๋ ํ๋์จ์ด ๊ธฐ๋ฐ์ ๋๋ค.
์ ๋ขฐ์ฑ ๊ด์ (์ฐ๊ตฌ ํ์ฅ) โ ๋ฉ๋ชจ๋ฆฌ ํฐ์ด๋ง๋ค ๋นํธ ์ค๋ฅ ํน์ฑ์ด ๋ค๋ฅด๋ฏ๋ก(DRAMยทCXLยทNVMe), KV ๋ธ๋ก์ '์ด๋ ํฐ์ด์ยท๋ช ๋นํธ๋ก(์์ํ)ยท์ด๋ค ECC ๊ฐ๋๋ก' ๋์ง๋ฅผ ํจ๊ป ์ ํ๋ reliability-aware ์คํ๋ก๋ฉ์ด ์์ฐ์ค๋ฌ์ด ํ์ฅ์ด๋ค. ๋ํ ์ด๋ MoE์ ์ ๋ฌธ๊ฐ ์คํ๋ก๋ฉ๊ณผ ๋ํ ๊ตฌ์กฐ('์ด๋ KV๋ฅผ/์ ๋ฌธ๊ฐ๋ฅผ ์ด๋ ํฐ์ด์ ๋์ง')๋ผ, ํ๋ฆฌํ์นยท์บ์ฑ ์ ์ฑ ์ ๊ณต์ ํ ์ ์๋ค.
์ฃผ์ โ ๋ณธ๋ฌธ ์์น๋ ๊ฐ ๋ ผ๋ฌธยท๋ฌธ์(LMCache arXiv 2510.09665, Mooncake arXiv 2407.00079ยทFAST 2025, CacheGen arXiv 2310.07240ยทSIGCOMM 2024, CXL-PNM/CXL-NDP ๋ฑ ํ์ ์ฐ๊ตฌ)์ ๋ณด๊ณ ๊ฐ์ผ๋ก, ๋ชจ๋ธยทํ๋์จ์ดยท์ํฌ๋ก๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. '์ต๋ 15๋ฐฐ/525% ์ฒ๋ฆฌ๋', 'TTFT 6.3์ดโ0.15์ด', '์์ถ 3.5~4.3๋ฐฐ'๋ ํน์ ์กฐ๊ฑด์ ์ํยท์ฌ๋ก๊ฐ์ด๋ฉฐ, ๋์ญํญ ์์น(HBM 2TB/sยทCXL 64GB/s๊ธยทPCIe 8~16GB/s)๋ ์ธ๋ยท๊ตฌ์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. CXL/PNM ๊ธฐ๋ฐ KV ์คํ๋ก๋ฉ์ ํ๋ฐํ ์ฐ๊ตฌ๋๋ ์์ญ์ผ๋ก ์์ฉํ ์ฑ์๋๋ ์์คํ ๋ง๋ค ์ฐจ์ด๊ฐ ์๋ค.
6. ํต์ฌ ์ ๋ฆฌ
KV ์บ์ ์คํ๋ก๋ฉ์ GPU์ ๋ค ๋ด๊ธฐ์ง ์๋ KV๋ฅผ CPU DRAMยทCXLยทNVMe๋ก ๋ด๋ ค ๋ณด๊ดยท์ฌ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ผ๋ก, '์ฐ์ฐ์ ์ ์ฅ์ผ๋ก ๋ฐ๊พธ๋' ๋ฐ์์ด๋ค. ๋ ๊ฐ์ง ์ฐ์(ํ๋ฆฌํฝ์ค ์ฌ์ฌ์ฉยทPD ๋ถ๋ฆฌ) ๋ชจ๋ KV๋ฅผ GPU ๋ฐ์ ๋๊ณ ์ฎ๊ธด๋ค. LMCache(KV ์บ์ฑ ๋ ์ด์ด, ์ต๋ 15๋ฐฐ ์ฒ๋ฆฌ๋), Mooncake(KVCache ์ค์ฌ ๋ถ๋ฆฌ ์ํคํ ์ฒ, ์ต๋ 525% ์ฒ๋ฆฌ๋), CacheGen(KV ์์ถยท์คํธ๋ฆฌ๋ฐ, ํฌ๊ธฐ 3.5~4.3๋ฐฐโ)์ด ๋ํ ์์คํ ์ด๋ฉฐ ์๋ก ๊ฒฐํฉ๋๋ค. ์ฑํจ๋ ์ฌ๊ณ์ฐ vs ์ ์ก์ ํธ๋ ์ด๋์คํ๋ก ๊ท๊ฒฐ๋์ด, ์์ถยท๋ ์ด์ด๋ณ ์คํธ๋ฆฌ๋ฐยทํ๋ฆฌํ์นยท์ค๋ณต์ ๊ฑฐยทcache-aware ๋ผ์ฐํ ์ผ๋ก ์ ์ก ๋ณ๋ชฉ์ ์ค์ธ๋ค. ํ๋์จ์ด๋ก๋ CXL(PCIe๋ณด๋ค ๋์ ๋์ญํญยทํ๋ง)์ด ์ ํฐ์ด๋ก, CXL-PNM(๋ฉ๋ชจ๋ฆฌ ๊ณ ์ฐ์ฐ์ผ๋ก recall ์ ๊ฑฐ)์ด ํ๋ก ํฐ์ด๋ก ๋ถ์ํ๊ณ ์๋ค.