๊ฐ์ ๊ณผ ๋ ์ฐฝ์ฑ, ํต์ฌ ์๊ณ ๋ฆฌ์ฆ, ๊ทธ๋ฆฌ๊ณ ํ๊ณ
๋ฌผ์ด๋ณธ ๊ฒ: ์ด ๋ ผ๋ฌธ์ ์์ฃผ ์์ธํ๊ฒ ์ฝ๊ณ ๋ ผ๋ฌธ์ ๊ฐ์ ๊ณผ ๋ ์ฐฝ์ ์ธ ์ง์ ์ ์ค๋ช ํด์ฃผ๊ณ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ๋ ฅ์ ๋ค์ด์ ์ ์ฒด์ ์ธ ๊ณผ์ ์ ์ค๋ช ํด์ค ์ถ๊ฐ์ ์ผ๋ก ๋ ผ๋ฌธ์ ํ๊ณ์ ์ ๋ํด์๋ ์๋ ค์ค
๐ ๊ฒฐ๋ก ์์ฝ
๋ ผ๋ฌธ *“Duplex: A Device for Large Language Models with Mixture of Experts, Grouped Query Attention, and Continuous Batching”*์ ์ ์ฐ์ฐ๋(Op/B)์ด ์ง๋ฐฐ์ ์ธ MoE ๋ฐ GQA ๊ธฐ๋ฐ LLM ์ถ๋ก ์ ์ํ ํ๋์จ์ด ์ํคํ ์ฒ Duplex๋ฅผ ์ ์ํ๋ฉฐ, GPU ๋จ๋ ๋๋น ์ต๋ 2.67ร์ ์ถ๋ก ์๋์ 42.03%์ ์๋์ง ์ ๊ฐ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ํต์ฌ์ xPU (GPU ์์ค ๊ณ ์ฑ๋ฅ ์ฐ์ฐ๊ธฐ)์ Logic-PIM (๋ก์ง ๋ค์ด์ ํ์ฌ๋ ์ Op/B ํนํ ์ฐ์ฐ๊ธฐ)๋ฅผ ๋์์ ํ์ฉํ์ฌ MoE์ Attention Layer๋ฅผ ๊ณต๋ ์ฒ๋ฆฌ(co-processing)ํ๋ ๋ฐฉ์์ ๋๋ค.
๐ ๋ ผ๋ฌธ์ ๊ฐ์ ๋ฐ ๋ ์ฐฝ์ฑ
| ๊ตฌ๋ถ | ์ค๋ช |
|---|---|
| ๐ฏ ๋ฌธ์ ์ ์ | Continuous batching์ผ๋ก ์ธํ MoE/Attention Layer์ DRAM ์ ๊ทผ๋ ์ฆ๊ฐ์ ๋ฎ์ Op/B๋ก ์ธํ GPU ํ์ฉ๋ฅ ์ ํ |
| ๐ง ๋ ์ฐฝ์ ์ ๊ทผ | ๊ธฐ์กด PIM์ด Op/B < 1 ์์ญ์ ํนํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Op/B = 1~32 ๋ฒ์ ์ต์ ํ๋ฅผ ์ํ Logic-PIM ์ ์ |
| ๐ ๋์ ์ฒ๋ฆฌ ๊ตฌ์กฐ | Attention๊ณผ MoE layer๋ฅผ Op/B ๊ธฐ๋ฐ์ผ๋ก xPU์ Logic-PIM์ ๋์ ๋ถ๋ฐฐํ์ฌ ํ์ฉ๋ ๊ทน๋ํ |
| ๐ Co-processing ๋ฐฉ์ | Expert ๊ฐ ํ ํฐ ์ ํธ์ฐจ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก expert-level parallelism, attention์ ์์ฒญ ๋จ์๋ก ๋ณ๋ ฌํ |
| ๐ ์ฑ๋ฅ ํฅ์ | H100 ๋๋น ํ๊ท 2.07ร throughput ํฅ์, 28.19% ์๋์ง ์ ๊ฐ, TBT ์ง์ฐ ์ต๋ 58.3% ๊ฐ์ |
โ๏ธ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๊ตฌ์กฐ ์์๋ก ์ค๋ช
๐ง ์์ ์ ๋ ฅ ์กฐ๊ฑด
- ๋ชจ๋ธ: Mixtral-47B, MoE Layer์ expert ์ \( N_{ex} = 8 \), top-2 routing
- ์์ฒญ ์: 4๊ฐ (Req0~Req3), ๊ฐ ์์ฒญ์ ํ ํฐ ์: 512
- Attention: GQA (deg_grp = 4)
- Stage: decoding-only
โ Expert Co-processing ๊ณผ์
| ๋จ๊ณ | ์์ ์ค๋ช |
|---|---|
| 1 | Gate-projection FC๋ฅผ ํตํด ๊ฐ ํ ํฐ์ด top-2 expert๋ก ๋ผ์ฐํ ๋จ |
| 2 | ๊ฐ expert๊ฐ ์ฒ๋ฆฌํ ํ ํฐ ์ ์ง๊ณ๋จ: ์์ปจ๋ Expert 0์ด 80๊ฐ, Expert 1์ด 30๊ฐ ๋ฑ |
| 3 | ์์ ๋ถ๋ฐฐ: ํ ํฐ ์๊ฐ ๋ง์ Expert (์: 0, 2, 4)๋ xPU, ์ ์ Expert (์: 1, 3, 5…)๋ Logic-PIM์ ํ ๋น |
| 4 | ๊ฐ ๋จ์๋ ๋ ๋ฆฝ์ ์ผ๋ก GEMM โ ํ์ฑํ โ down-projection ์ํ |
| 5 | down-projection์ partial sum์ xPU์์ all-reduce ์ํ ํ ์ต์ข MoE ์ถ๋ ฅ ์์ฑ |
โก Attention Co-processing ๊ณผ์
- Prefill vs Decoding ์์ฒญ ๋ถ๋ฆฌ:
- Prefill Attention: ๊ณ Op/B โ xPU
- Decoding Attention: ์ Op/B โ Logic-PIM
- ๊ฐ ํค๋๋ ๋ณ๋ KV ๊ณต์ ์์ด ๋ ๋ฆฝ โ request-level ๋ณ๋ ฌ์ฑ + head-level ๋ณ๋ ฌ์ฑ ํ์ฉ
๐ ์คํ ๊ฒฐ๊ณผ ์์ฝ (์ ๋์ ์์น)
| ๋น๊ต ๋์ | Throughput (tokens/s) | TBT ์ง์ฐ | ์๋์ง ์๋น |
|---|---|---|---|
| GPU (H100) | 1.0 (baseline) | 1.0x | 1.0x |
| Duplex | 2.07ร | โ58.3% | โ28.2% |
| Duplex+PE+ET | 2.67ร | ์ต๋ โ60.2% | ์ต๋ โ42.0% |
| 2รGPU | 1.76ร | ์ ์ฌ | โ ์๋์ง ์๋น |
โ ๏ธ ํ๊ณ์ ๋ฐ ๊ณ ๋ ค์ฌํญ
| ๊ตฌ๋ถ | ์ค๋ช |
|---|---|
| ๐ง Expert skew dependency | Co-processing ํจ๊ณผ๋ ์ ๋ฌธ๊ฐ ๊ฐ ํ ํฐ ์ ๋ถ๊ท ํ์ด ์์ ๋ ๊ทน๋ํ๋จ. ๊ท ์ผ ๋ถํฌ์ผ ๊ฒฝ์ฐ ํจ์จ ๊ฐ์ |
| ๐ KV cache ๊ด๋ฆฌ | ๊ธด ์ํ์ค ๋ฐ ๋ํ ๋ฐฐ์น ์ KV ์บ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ณ๋ชฉ. PagedAttention ๋ฑ์ ์บ์ ์ด๊ด ๊ธฐ๋ฒ ํ์ |
| ๐ Prefill-Decode ๋ถ๋ฆฌ ์ฒ๋ฆฌ | Splitwise์ ์ ์ฌํ prefill/decoding ๋ ธ๋ ๋ถ๋ฆฌ ์ Throughput ํ๋ฝ ๋ฐ์ (๋นํจ์จ์ weight ๋ณต์ , ํ์ฉ๋ฅ ์ ํ) |
| ๐ TSV ์ถ๊ฐ ๋ฐ PIM area overhead | TSV์ ๋ก์ง ์ฐ์ฐ๊ธฐ ์ถ๊ฐ๋ก HBM3 logic die์ 14.71% ๋ฉด์ ์ฆ๊ฐ ๋ฐ์ (ํ์ง๋ง ๊ธฐ์กด Bank-PIM ๋๋น ์์) |
โ ์ ๋ฆฌ
Duplex๋ LLM์ ์ฐ์ฐ๋ ๋ถ๊ท ํ(Op/B ๊ธฐ๋ฐ)์ ์ต์ ํ๋ ํ๋์จ์ด-์๊ณ ๋ฆฌ์ฆ ๋์ ์ค๊ณ ์ฌ๋ก๋ก, ํนํ MoE+GQA+Continuous batching ์กฐํฉ์์ GPU ๋๋น ํ์ฐํ ์ฑ๋ฅ ๋ฐ ์๋์ง ํจ์จ ๊ฐ์ ์ ๋ฌ์ฑํฉ๋๋ค. ํฅํ ์ด๋ฌํ hybrid device ์ค๊ณ๊ฐ GPU ๋์ฒด ํน์ ๋ณด์ ๊ตฌ์กฐ๋ก ์ ์ ์ค์ํด์ง ๊ฐ๋ฅ์ฑ์ด ํฌ๋ฉฐ, Logic-PIM์ ์ค๋ฆฌ์ฝ ๊ตฌํ์ด๋ ํ๋ ์์ํฌ ํตํฉ์ ๋ํ ํ์ ์ฐ๊ตฌ๊ฐ ๊ธฐ๋๋ฉ๋๋ค.
ํ์ํ๋ค๋ฉด ์ฃผ์ Figure๋ Table์ ์๊ฐํ ์ ๋ฆฌ, ๊ฐ ํ๋์จ์ด ๊ตฌ์ฑ ์์๋ณ UML/๊ตฌ์กฐ๋ ๋ฑ๋ ๋์๋๋ฆด ์ ์์ด์. ์ถ๊ฐ ์์ฒญ ์ฃผ์ธ์.
ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์์๋ก ๋ฐ๋ผ๊ฐ๊ธฐ
๋ฌผ์ด๋ณธ ๊ฒ: ๋ ผ๋ฌธ์ ํต์ฌ์๊ณ ๋ฆฌ์ฆ์ ์์๋ฅผ ๋ค์ด ์์ฃผ ์์ธํ๊ฒ ์ค๋ช ํด์ฃผ๊ณ ์ ๋ฆฌํด ์ค
Duplex ๋ ผ๋ฌธ์ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ โexpert and attention co-processingโ์ ๋๋ค. ์ด๋ LLM์ Mixture-of-Experts (MoE) ๋ฐ Grouped-Query Attention (GQA) ๊ณ์ธต์์ xPU์ Logic-PIM์ ๋์์ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ๋ณ๋ ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ํ Layer ๋ถ๋ฆฌ ์์ค์ด ์๋๋ผ fine-grained ์์ค์์ co-processingํ๋ ๊ฒ์ด ๋ ผ๋ฌธ์ ํต์ฌ ๊ธฐ์ฌ์ ๋๋ค.
โ ๊ฐ๋ ์ ๋ฆฌ: Co-processing์ด ํ์ํ ์ด์
| Layer | ํน์ง | ๋ฌธ์ ์ (GPU ๊ธฐ์ค) |
|---|---|---|
| MoE Layer | Top-k Expert ์ ํ ํ GEMM + activation | ํ ํฐ์ด ๊ฐ Expert๋ก ๋ถ์ฐ๋ผ Op/B๊ฐ ๋ฎ์ (1~4 ์์ค), ์ฐ์ฐ๊ธฐ ํ์ฉ๋ ์ ์กฐ |
| Attention Layer (GQA) | Grouped Head๋ค์ด ๊ณต์ ๋ KV๋ก Attention | ์์ฒญ๋ง๋ค ๋ค๋ฅธ KV โ GEMV ์ฐ์ฐ + DRAM ์ก์ธ์ค ์ฆ๊ฐ |
์ด๋ก ์ธํด ๊ธฐ์กด GPU๋ ์ฐ์ฐ๋(Op/B)์ด ๋ฎ์ ์ด Layer๋ค์์ 11% ์ดํ ํ์ฉ๋ฅ , ๋ฎ์ throughput, ๋์ ์ง์ฐ๊ณผ ์๋์ง ๋ญ๋น ๋ฌธ์ ๋ฐ์.
๐ง ํต์ฌ ์์ด๋์ด: Expert & Attention Co-processing
๊ตฌ์กฐ
- xPU: GPU ์์ค ์ฐ์ฐ์ฅ์น (๊ณ Op/B ์ ์ฉ)
- Logic-PIM: DRAM logic die์ ํ์ฌ๋ ์ฐ์ฐ๊ธฐ (์ Op/B ์ ์ฉ)
๊ฐ Layer์ ์ฐ์ฐ๋(Op/B)์ ๋ฐ๋ผ ์ ์ ํ ์ฐ์ฐ๊ธฐ๋ก ๋ถ๋ฐฐํ์ฌ ๋ณ๋ ฌ ์ํ (co-processing)
๐ ์์ ๊ธฐ๋ฐ ์ ์ฒด ํ๋ก์ธ์ค ์ค๋ช
๐งช ์ ๋ ฅ ์กฐ๊ฑด (Mixtral ๋ชจ๋ธ ๊ธฐ์ค)
- Batch size: 4๊ฐ ์์ฒญ (Req0 ~ Req3)
- ๊ฐ ์์ฒญ ํ ํฐ ์: 512
- MoE layer: 8 experts, top-2 ์ ํ
- Attention: GQA (deg_grp=4)
- Stage: Mixed (Req0~2๋ decoding, Req3๋ prefill)
โ MoE Co-processing - ์์ ๊ธฐ๋ฐ ๋จ๊ณ
Gate Projection ์คํ (xPU)
- ๊ฐ ํ ํฐ์ด top-2 experts ์ ํ๋จ
- ์:
- Req0: ํ ํฐ 512๊ฐ ์ค โ Expert 0: 120๊ฐ, Expert 1: 80๊ฐ
- Req1: Expert 0: 90๊ฐ, Expert 2: 100๊ฐ ๋ฑ
Expert๋ณ ํ ํฐ ์ ๊ณ์ฐ
โ Expert๋ณ๋ก ์ฒ๋ฆฌํ ํ ํฐ ์ ์์ดํจ โ ๋ถ๊ท ํ ๋ฐ์์์ ๋ถ๋ฐฐ (์ ์ฑ ๊ธฐ๋ฐ)
- xPU: ๋ง์ ํ ํฐ ํ ๋น๋ expert (e.g., Expert 0, 2, 5)
- Logic-PIM: ์ ์ ํ ํฐ expert (e.g., Expert 1, 3, 6)
์ฐ์ฐ ์ํ
- ๊ฐ ์ฐ์ฐ๊ธฐ์์:
- Up-Projection (GEMM)
- Activation (e.g., SiLU)
- Down-Projection (GEMM)
- ๊ฐ ์ฐ์ฐ๊ธฐ์์:
๊ฒฐ๊ณผ ํฉ์ฐ (xPU)
- ๊ฐ Logic-PIM๊ณผ xPU๊ฐ ๊ณ์ฐํ output์ all-reduceํ์ฌ ์ต์ข MoE output ์์ฑ
- ์ด ๋จ๊ณ๋ xPU๊ฐ ์ํํจ
โ ์ด ๋ฐฉ์์ ํ ํฐ ์ ๋ถ๊ท ํ์ ํ์ฉํด ๊ฐ ์ฐ์ฐ๊ธฐ์ utilization์ ๋์
โก Attention Co-processing - ์์ ๊ธฐ๋ฐ ๋จ๊ณ
Request ๋ถ๋ฅ
- Req3 (Prefill): Q 512๊ฐ / KV 512๊ฐ โ GEMM, Op/B ๋์
- Req0~2 (Decoding): Q 1๊ฐ์ฉ / KV ๋ง์ โ GEMV, Op/B ๋ฎ์
์ฐ์ฐ๊ธฐ ๋ถ๋ฐฐ
- Prefill attention: xPU
- Decoding attention: Logic-PIM
Attention ๊ณ์ฐ
- GQA์ด๋ฏ๋ก ๊ฐ group head๋ ๋์ผํ KV๋ฅผ ๊ณต์ โ DRAM ์ ๊ทผ๋ ์ ๊ฐ
- ๊ฐ request ๊ฐ ๋ ๋ฆฝ โ Logic-PIM์์ Request-level ๋ณ๋ ฌ, Head-level ๋ณ๋ ฌ ์ํ
๐ ์๊ณ ๋ฆฌ์ฆ ํ๋ฆ ์์ฝ (ํผํฉ ์คํ ์ด์ง ๊ธฐ์ค)
[Input] โ Embedding โ LayerNorm
โ
[MHA/GQA] โ Logic-PIM (decoding) + xPU (prefill)
โ
[MoE Layer]
โโ Expert 0, 2, 5 โ xPU
โโ Expert 1, 3, 6 โ Logic-PIM
โ
[AllReduce (MoE output)] โ xPU
โ
[Projection, Residual, LayerNorm] โ xPU๐ ์๋ ํฅ์์ ์ํ ์ถ๊ฐ ๊ธฐ์ : Lookup Table ๊ธฐ๋ฐ Expert ๋ถ๋ฐฐ
- ์ฌ์ ์ ๊ฐ expert์ ๋ํด โn๊ฐ ํ ํฐ ์ฒ๋ฆฌ ์ xPU/Logic-PIM ์์ ์๊ฐโ์ ์ธก์ ํ์ฌ LUT ๊ตฌ์ถ
- ์ค์๊ฐ ์คํ ์:
- ๊ฐ expert๋ณ ํ ํฐ ์ ์ง๊ณ
- ์ต์ ์คํ ์๊ฐ ์กฐํฉ์ ํ์ํ์ฌ ๋ถ๋ฐฐ
- ์ด ๋ฐฉ์์ overhead๊ฐ negligible ์์ค
๐งฉ ์ ๋ฆฌ
| ๊ตฌ์ฑ์์ | ๊ธฐ์ฌ |
|---|---|
| ๐ Co-processing | ์ฐ์ฐ๊ธฐ ํ์ฉ๋ฅ ํฅ์, Op/B ๊ธฐ๋ฐ ๊ณ์ธต ๋ถํ |
| โ๏ธ Expert ๋ถ๋ฐฐ | Load balancing ๊ธฐ๋ฐ GPU + Logic-PIM ๋์ ํ์ฉ |
| ๐ Attention ๋ณ๋ ฌ | Request & Head ๋ณ๋ ฌํ๋ก GQA ์ฐ์ฐ ์ต์ ํ |
| ๐ง LUT ๊ธฐ๋ฐ ์ค์ผ์ค๋ง | ๋ฐํ์ ์ค๋ฒํค๋ ์ต์ํํ๋ฉด์ ์ต์ ํ๋ ๋ถ๋ฐฐ ๊ฒฐ์ |
์ด ์๊ณ ๋ฆฌ์ฆ์ ์์ผ๋ก MoE ๊ธฐ๋ฐ LLM์ด ์ ์ ์ปค์ง๋ฉด์ ๋จ์ผ GPU๋ก๋ ๊ฐ๋นํ๊ธฐ ์ด๋ ค์ด low Op/B ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ํต์ฌ ๊ธฐ์ ์ด ๋ ์ ์์ต๋๋ค.
ํ์ํ์๋ฉด LUT ๊ตฌ์ฑ ๋ฐฉ์, ๋๋ expert ๋ถ๋ฐฐ ์๊ณ ๋ฆฌ์ฆ์ ์์ฌ์ฝ๋ ์์ค์ผ๋ก๋ ํ์ด๋๋ฆด ์ ์์ด์.
์คํ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ก ๊ณผ์ ์ฐจ์ด
๋ฌผ์ด๋ณธ ๊ฒ: ์ด ๋ ผ๋ฌธ์์ ์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์์ธํ๊ฒ ๋ณด๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ก ์ ๋นํ์ฌ ํน์ถ๋ ์ ๊ณผ ๋ ผ๋ฌธ์์ ์ ๊ธฐํ๋ ์ด๋ ํ ๋ฐฉ๋ฒ์ด ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๊ฒ ๋์๋์ง ๋ ผ๋ฌธ์์ ์ ์ํ๋ ์ด์ ์ ๋์ ์๊ฐ์ ์๋ ค์ค
์ข์ต๋๋ค. Duplex ๋ ผ๋ฌธ์ Mixture-of-Experts (MoE), Grouped Query Attention (GQA), ๊ทธ๋ฆฌ๊ณ Continuous Batching์ผ๋ก ๊ตฌ์ฑ๋ ์ต์ LLM ํ๊ฒฝ์์ GPU๊ฐ ๊ฐ์ง ๋ฎ์ ์ฐ์ฐ ํ์ฉ๋ฅ ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ณ๋ชฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ xPU + Logic-PIM ๊ธฐ๋ฐ ์ด๊ธฐ์ข ์ฐ์ฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๊ตฌ์กฐ๋ก ๊ธฐ์กด GPU ๋ฐ ๊ธฐํ PIM ๊ธฐ๋ฐ ๊ตฌ์กฐ ๋๋น ํ์ํ ์ฑ๋ฅ/์๋์ง ํจ์จ์ ๋ฌ์ฑํ์์ต๋๋ค.
๐ ๋ ผ๋ฌธ์์ ์ ์ํ ์ฃผ์ ์คํ ๊ฒฐ๊ณผ
| ๋น๊ต ๋์ | Throughput ํฅ์ | TBT (p50) ๊ฐ์ | E2E Latency ๊ฐ์ | Energy ๊ฐ์ |
|---|---|---|---|---|
| GPU (H100) | ๊ธฐ์ค์ (1.0ร) | ๊ธฐ์ค์ | ๊ธฐ์ค์ | ๊ธฐ์ค์ |
| 2ร GPU (H100) | 1.76ร | โ ๋ฎ์ | โ ์ฝ๊ฐ ๊ฐ์ | โ ์ฆ๊ฐ |
| Duplex | 2.07ร | โ 58.3% | โ 60.2% | โ 28.2% |
| Duplex+PE+ET | ์ต๋ 2.67ร | โ ์ต๋ 58.3% | โ 35~60% | โ 42.03% |
๐ ํ๊ฐ ๋ชจ๋ธ: Mixtral, GLaM, Grok1, LLaMA3, OPT
โ๏ธ ํ
์คํธ ์กฐ๊ฑด: (Lin, Lout) โ [256โ4096], Batch size โ [32โ128]
๐งฉ ์ด๋ค ๋ฐฉ์์ด ์ด๋ฐ ์ฑ๋ฅ ํฅ์์ ์ด๋์๋๊ฐ?
1. ๐ก Logic-PIM ์ํคํ ์ฒ ์ค๊ณ
- ๊ธฐ์กด PIM (e.g., Bank-PIM, BankGroup-PIM)์ DRAM ๋ค์ด์ ์ฐ์ฐ ์ ๋์ ์ง์ ์ง์ ํ์ฌ Op/B < 1 ์์ค์ ํนํ
- ๋ ผ๋ฌธ์ โOp/B 1~32โ ์์ค์ด ์ค์ MoE, GQA ์ฐ์ฐ์ ํด๋น๋จ์ ๊ด์ฐฐ โ ๊ธฐ์กด PIM ๋นํจ์จ
- Logic-PIM์ DRAM ์๋ Logic die์ ๊ณ ์ฑ๋ฅ ์ฐ์ฐ ์ ๋์ ๋ฐฐ์นํ๊ณ TSV๋ฅผ ์ฆ์คํ์ฌ ๊ณ ๋์ญํญ ์ฐ๊ฒฐ
โ ๊ฒฐ๊ณผ:
์ฐ์ฐ ๋ฐ๋๋ ๋ฎ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋์ด ๋ง์ Layer (MoE, GQA)๋ฅผ PIM์ด ํจ์จ์ ์ผ๋ก ๋ถ์ฐ ์ฒ๋ฆฌ
2. ๐ Expert / Attention Co-processing
- ๊ธฐ์กด ๋ฐฉ์์ Layer ๋จ์๋ก ์ฐ์ฐ ๋ถ๋ฐฐํจ (GPU โ PIM)
- Duplex๋ Fine-grained ์ฐ์ฐ ๋ถ๋ฐฐ:
- MoE: Expert๋ณ ํ ํฐ ์์ ๋ฐ๋ผ GPU โ Logic-PIM์ ๋ถํ ๋ฐฐ์
- Attention: Prefill์ GPU, Decoding์ Logic-PIM์ผ๋ก ๋ถ๋ฆฌ
โ ๊ฒฐ๊ณผ:
โ๏ธ ์ฐ์ฐ ๋ฆฌ์์ค ํ์ฉ๋ฅ ์ฆ๊ฐ
โ๏ธ Co-processing์ ํตํด ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ก latency ๊ฐ์
โ๏ธ batching ํจ๊ณผ ์์ค ์์ด throughput ์ฆ๊ฐ
3. ๐ ์ฐ์ฐ๋ (Op/B)์ ๋ฐ๋ฅธ ์ค์ผ์ค๋ง ์ต์ ํ
- ๊ฐ layer์ Op/B๋ฅผ ๋์ ์ผ๋ก ์ธก์ ํ์ฌ:
- Op/B โ: GPU(xPU)
- Op/B โ: Logic-PIM
์์:
- GQA (deg_grp = 4~8): Op/B โ 4~8 โ Logic-PIM์ด ์ ํฉ
- MoE (top-k=2, Nex=64): Op/B โ 1~5 โ Logic-PIM ๋์
- FC Layer: Op/B โซ 32 โ GPU ๋์
4. ๐ Continuous Batching ๊ตฌ์กฐ ์ต์ ํ
- Continuous batching์ request๋ฅผ stage ๋จ์๋ก lock-step batching ์ฒ๋ฆฌ
- Decoding-only stage๊ฐ ์ ์ฒด์ 80% ์ด์
โ Op/B ๋ฎ์ โ Logic-PIM์ ํ์ฉํ ๋น ๋ฅธ ์ฒ๋ฆฌ ํจ๊ณผ์
๐ง ์ ์์ ์ฃผ์ฅ vs ๋์ ํด์
| ํญ๋ชฉ | ๋ ผ๋ฌธ ์ค๋ช | ๋์ ํด์ |
|---|---|---|
| ๐ฏ ๋ฌธ์ ์ ์ | Continuous batching์์์ ๋ฎ์ Op/B๋ก GPU ์์ ๋ฏธํ์ฉ | ํ๋นํจ. ํนํ decoding-only stage์์ ๋๋ถ๋ถ์ ์๊ฐ์ด MoE/Attention์ ์๋น๋จ |
| ๐ ์ฑ๋ฅ ํฅ์ ๊ทผ๊ฑฐ | Op/B ๊ธฐ๋ฐ device selection + co-processing | ๋จ์ Layer ์ด๋์ด ์๋ intra-layer ๋ถํ ์ด๋ผ๋ ์ ์์ ํฐ ๊ตฌ์กฐ์ ์ฐจ๋ณ์ฑ ์กด์ฌ |
| โ๏ธ Logic-PIM ์ฐ์์ฑ | DRAM die ๋์ logic die์ ์ฐ์ฐ๊ธฐ ๋ฐฐ์น๋ก area ํจ์จ ๋ฐ Op/B ๋์ ๋ฒ์ ํ์ฅ | TSV ๋ฐ๋ ์ฆ๊ฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ค๋ ์ ์์ ์ค๋ฆฌ์ฝ ๊ตฌํ ๊ด์ ์์๋ ์ค๋๋ ฅ ์์ |
| ๐ ๊ฒฝ์ ๊ตฌ์กฐ ๋๋น | Bank-PIM์ Op/B ์ฆ๊ฐ ์ ์ฑ๋ฅ ๊ธ๊ฐ | ์ค์ Mixtral ๋ฑ ๊ณ Op/B GQA ๋ชจ๋ธ์์ Duplex๊ฐ ์๋์ ์ฐ์ ํ๋ณด |
๐ฌ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ก ๊ณผ ์ฐจ๋ณ์ ์์ฝ
| ํญ๋ชฉ | Duplex | ๊ธฐ์กด PIM (Bank-PIM ๋ฑ) | GPU only |
|---|---|---|---|
| Layer ์ฒ๋ฆฌ ๋ฐฉ์ | Intra-layer Co-processing | Layer offloading | Full layer GPU ์ฒ๋ฆฌ |
| Target Op/B | 1โ32 | <1 | ์ ํ ์์, ๊ทธ๋ฌ๋ ์ Op/B ๋นํจ์จ |
| ํ๋์จ์ด ์์น | Logic Die (HBM ๋ด๋ถ) | DRAM Die | ๋ณ๋ SoC |
| Throughput | 2.67ร | ~1.4โ1.6ร | baseline |
| Latency | โ ์ต๋ 60% | โ ์ผ๋ถ ๊ฐ์ | ๋์ |
| Energy | โ 28โ42% | ์ค๊ฐ | ๋์ |
| Weight Duplication ๋ฌธ์ | ์์ | ์์ | ์์ |
โ ๊ฒฐ๋ก ์์ฝ
Duplex์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋จ์ํ ํ๋์จ์ด ์ถ๊ฐ ๋๋ฌธ์ด ์๋๋ผ,
๐น Op/B-aware ์ฐ์ฐ ๋ถ๋ฐฐ ์ ๋ต,
๐น intra-layer ์์ค์ fine-grained co-processing,
๐น HBM logic die๋ฅผ ํ์ฉํ Logic-PIM ๊ตฌ์กฐ ์ค๊ณ,
๐น ๊ทธ๋ฆฌ๊ณ continuous batching์ ์ต์ ํ๋ ์คํ ์ค์ผ์ค๋ง
์ด ์ ๊ธฐ์ ์ผ๋ก ์๋ํ ๊ฒฐ๊ณผ์
๋๋ค.
“๋จ์ํ ๋ ๋ง์ ์ฐ์ฐ ์์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ, ๋ ๋๋ํ๊ฒ ๋ถ์ฐํ๊ณ ๋ฐฐ์นํ๋ ๊ฒ”์ด Duplex๊ฐ ํน์ถ๋ ์ด์ ์ ๋๋ค.
์ ๋ ฅ ๋ฐ์ดํฐ์ ์ถ๋ก ๊ณผ์ , ๋ชจ๋ธ ๊ตฌ์กฐ์ ์์ ์๊ตฌ๋
๋ฌผ์ด๋ณธ ๊ฒ: ์ด ๋ ผ๋ฌธ์ ์ ๋ ฅ๋ฐ์ดํฐ์ ์ถ๋ก ๊ณผ์ ์ ๋ํด์ ์์๋ฅผ ๋ค์ด ์์ฃผ ์์ธํ๊ฒ ์ค๋ช ํด ์ฃผ๊ฒ ๋? ์ถ๊ฐ์ ์ผ๋ก ๋ชจ๋ธ์ํคํ ์ฒ์ ๊ตฌ์ฑ ๋ฐ ๋ชจ๋ธ์ ๊ตฌ์ฑํ๋ ์ฐ์ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋ ์ปดํจํ ์๊ตฌ๋ ๋ํด์๋ ์ค๋ช ํด์ค
์ข์ต๋๋ค. ์ด ๋ ผ๋ฌธ์์ ๋ค๋ฃจ๋ Duplex ๊ตฌ์กฐ๋ LLM ์ถ๋ก (inference)์ ์ฐ์ฐ ๋ณ๋ชฉ์ ํด๊ฒฐํ๊ธฐ ์ํ ํ๋์จ์ด์ ์ ๊ทผ์ด๋ฉฐ, ๋ ผ๋ฌธ ์ ๋ฐ์์ Mixtral, GLaM, Grok1 ๊ฐ์ MoE ๊ธฐ๋ฐ ๋์ฝ๋-์ค์ฌ LLM ๊ตฌ์กฐ๋ฅผ ๋์์ผ๋ก ์ฑ๋ฅ์ ๋ถ์ํฉ๋๋ค. ์๋๋ ์์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ถ๋ก ๊ฒฝ๋ก, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ธ ์ํคํ ์ฒ ๊ตฌ์กฐ ๋ฐ ๊ฐ ์ฐ์ฐ์ ๋ฉ๋ชจ๋ฆฌยท์ปดํจํ ์๊ตฌ๋์ ์์ธํ๊ฒ ์ค๋ช ํ ๋ด์ฉ์ ๋๋ค.
1. ๐งช ์์ ๊ธฐ๋ฐ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ถ๋ก ๊ฒฝ๋ก
๐ ์์ ์ค์
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| Request ์ | 4๊ฐ (Req0 ~ Req3) |
| ๊ฐ Request์ Input Length (Lin) | 512 tokens |
| Output Length (Lout) | 128 tokens |
| Model | Mixtral-47B |
| MoE ๊ตฌ์ฑ | 8 experts, top-2 ์ ํ |
| Attention | Grouped Query Attention (deggrp = 4) |
| Stage | Mixed stage (Req0~2: decoding, Req3: prefill) |
2. ๐ง ๋ชจ๋ธ ์ํคํ ์ฒ ๊ตฌ์ฑ (MoE + GQA ๊ธฐ๋ฐ ๋์ฝ๋)
โผ ๊ตฌ์กฐ ์์ฝ
[Embedding]
โ
[Decoder Block ร N] โ 32~80 layers
โโโ LayerNorm
โโโ Grouped Query Attention (GQA)
โโโ Residual Add
โโโ MoE Layer (Gate + FFN experts ร N_ex)
โโโ Residual Add
[LM Head]3. ๐ ์ถ๋ก ๊ณผ์ ์์ธ ์์
โถ Stage 1: Prefill (Req3)
์ ๋ ฅ: 512๊ฐ ํ ํฐ
์ํ ๋ด์ฉ:
- Token โ Embedding vector (FP16, e.g., 4096-dim)
- Embedding โ GQA โ Key, Value โ KV cache๋ก ์ ์ฅ
- GQA ๊ฒฐ๊ณผ + Residual โ MoE โ FFN ๊ฒฐ๊ณผ ํฉ์ฐ
- ์ต์ข hidden โ LM Head โ ๋ค์ token ์์ฑ (์ฒซ token)
ํน์ด์ :
- GQA: K/V๋ 512๊ฐ์ context ํ ํฐ์์ ๋ง๋ค์ด์ง
- Q๋ 512๊ฐ์ ํ ํฐ โ GEMM ํํ
- Op/B: ๋์ (~16) โ xPU์์ ์ฒ๋ฆฌ
โถ Stage 2: Decoding (Req0~2)
์ ๋ ฅ: ์ด์ ๋จ๊ณ์ ๋ง์ง๋ง token (1๊ฐ)
์ํ ๋ด์ฉ:
- 1-token โ Embedding โ 1ร4096 ๋ฒกํฐ
- Q๋ง ์๋ก ์์ฑ + ์ด์ KV์ Attention ์ํ (GQA)
- MoE Layer: ๊ฐ token โ top-2 experts ์ ํ โ FFN ํต๊ณผ
- LM Head์์ ๋ค์ token ์์ฑ
ํน์ด์ :
- Q: 1๊ฐ token โ K/V๋ ๊ธฐ์กด 512๊ฐ์ ๋งค์นญ โ GEMV ํํ
- MoE๋ ๋ถ๊ธฐ๋ผ์ ๋ณ๋ ฌ expert ์ฒ๋ฆฌ (ํ ํฐ๋ง๋ค ๋ค๋ฅธ expert)
- Op/B: ๋ฎ์ (~1~4) โ Logic-PIM์์ ์ฒ๋ฆฌ ํจ์จ์
4. โ๏ธ ๊ฐ ์ฐ์ฐ๋ณ ์๊ตฌ ์์ ๋ถ์
| ์ฐ์ฐ ์ข ๋ฅ | ์ค๋ช | ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋ | ์ฐ์ฐ๋ (FLOPs) | Op/B (๋๋ต) | ์ฒ๋ฆฌ ์์น |
|---|---|---|---|---|---|
| Embedding | Token โ vector | Lin ร dmodel | negligible | - | xPU |
| QKV ์์ฑ | Linear FC ร3 | O(Bรdยฒ) | O(Bรdยฒ) | ๋์ (โฅ32) | xPU |
| GQA Attention | QยทKT โ Softmax โ V | GEMV (1รd ยท dรseq) | ๋ฎ์ | 1~8 | Logic-PIM |
| MoE Gate | FC + Top-k | dโNex, k=2 | ๋ฎ์ | ~1 | xPU |
| MoE FFN (Expert) | FC1 โ Act โ FC2 | Bร2รdintรdmodel | ๋์ (์กฐ๊ฑด๋ถ) | 1~10 | xPU/Logic-PIM ํผํฉ |
| AllReduce (MoE output) | expert๋ณ partial sum ๊ฒฐํฉ | bandwidth โ | ๋ฎ์ | - | xPU |
| LM Head | FC โ vocab | O(dรV) | ๋งค์ฐ ๋์ | โฅ64 | xPU |
โป d: hidden dim (์: 4096), dint: intermediate dim (์: 14336), V: vocab size (์: 50K)
5. ๐ฆ Memory ์๊ตฌ๋ (in decoding stage)
| ํญ๋ชฉ | ์๊ตฌ๋ |
|---|---|
| KV Cache | 2 ร d ร Lin ร batch size ร FP16 = 2ร4096ร512ร4ร2B โ 8MB |
| MoE expert weight | ๊ฐ expert FFN: (FC1 + FC2) โ 2 ร d ร dint ร Nex = ์ฝ 2GB |
| GQA weight | WQ, WK, WV ๊ณต์ ๋๋ฏ๋ก ์ ์ฒด FC ์ฐ์ฐ์ฉ ๊ฐ์ค์น: ์์ญ MB |
6. โก Computing ์๊ตฌ๋ (per stage)
| Stage ์ ํ | ์ฃผ์ ์ฐ์ฐ | FLOPs (๋๋ต) | ๋ณ๋ชฉ Layer |
|---|---|---|---|
| Prefill | GQA + MoE | 1โ2 TF | xPU์์ ์ง์ค ์ฒ๋ฆฌ |
| Decoding-only | GQA (GEMV) + MoE (GEMM) | ์๋ฐฑ GF | Logic-PIM์ ์ต์ |
โ ์ฐ์ฐ๋ ์์ฒด๋ prefill์ด ํฌ์ง๋ง, ์ ์ฒด ์์ฒญ ์ ๋๋น decoding-only stage๊ฐ 80% ์ด์์ ์ฐจ์ง
โ Op/B ๋ฎ์ decoding ๋จ๊ณ์์ Logic-PIM์ด ๋งค์ฐ ์ ํจํจ
โ ์ ๋ฆฌ
| ํญ๋ชฉ | Duplex์ ์ค๊ณ/์๊ณ ๋ฆฌ์ฆ์์ ์ด๋ป๊ฒ ๋์ํ๋๊ฐ |
|---|---|
| ๋ค์ํ Op/B ๊ณ์ธต ์กด์ฌ | GQA (Op/B 4โ8), MoE (Op/B 1โ10), FC (Op/B โซ 32) |
| โ ์ฐ์ฐ๊ธฐ ํ ๋น ์ ๋ต | Op/B์ ๋ฐ๋ผ Logic-PIM vs xPU์ ๋์ ๋ถ๋ฐฐ |
| ๊ธด sequence โ KV cache โ | KV ์บ์๋ฅผ bank bundle ๋จ์๋ก ๋ถ์ฐ + migration ์ง์ |
| Token ๋จ์ processing | ํ ํฐ๋ณ๋ก ์๋ก ๋ค๋ฅธ expert์ ๋ถ๊ธฐ โ Fine-grained expert routing |
| Memory ๋์ญํญ ๋ณ๋ชฉ | DRAM die ๋์ Logic die์ ์ฐ์ฐ๊ธฐ ํ์ฌ + TSV ํ์ฅ์ผ๋ก ํด๊ฒฐ |
ํ๊ณ๋ฅผ ๋์ผ๋ ค๋ ์ฐ๊ตฌ ํ๋ฆ
๋ฌผ์ด๋ณธ ๊ฒ: ์ด ๋ ผ๋ฌธ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ค ์ฐ๊ตฌํ๋ฆ์ด ์๋์ง ์ ๋ฆฌํด์ ์์ธํ๊ฒ ์ค๋ช ํด ์ค
์ข์ต๋๋ค. Duplex ๋ ผ๋ฌธ์ Logic-PIM๊ณผ xPU์ ์ฐ์ฐ ํน์ฑ์ ํ์ฉํ์ฌ LLM์ MoE+GQA ๊ตฌ์กฐ๋ฅผ ๊ณ ์์ผ๋ก ์ถ๋ก ํ๋ ๋ฐ์ด๋ ์ค๊ณ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ช ๊ฐ์ง ์ค๊ณ์ /์์คํ ์ ํ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ํ์ ์ฐ๊ตฌ ํ๋ฆ์ ์ ๋ฆฌํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ 1. ํ๊ณ ์์ฝ ๋ฐ ๋์ ์ฐ๊ตฌ ํ๋ฆ
| ํ๊ณ์ | ์์ธ ์ค๋ช | ๋์ ์ฐ๊ตฌ ํ๋ฆ |
|---|---|---|
| ๐ฏ A. Co-processing ๊ฒฐ์ ์ ์ ์ ์ ์ฑ | Token ์ ๊ธฐ๋ฐ expert ๋ถ๋ฐฐ๋ ๋ฏธ๋ฆฌ ์ธก์ ๋ LUT์ ์์กดํจ. โ ๋์ ๋ถํ ๋ณ๋์ด๋ QoS์ ๋ฏผ๊ฐํ์ง ์์ | ๐น Reinforcement Learning ๊ธฐ๋ฐ ๋์ expert scheduling ๐น QoS-aware routing (e.g., latency-bound co-processing) ๐น System-level runtime profiler ์ฐ๋ |
| ๐ B. Bank bundle ์ถฉ๋ ๋ฐ memory mapping overhead | Logic-PIM โ xPU ๊ฐ ๋ณ๋ ฌ ์ ๊ทผ ์ DRAM bank ์ถฉ๋ ๊ฐ๋ฅ์ฑ ์์ โ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ์ ๋ต์ด ๋ณต์กํจ | ๐น Bank-aware compiler pass ๋๋ Placement-aware runtime ๐น DRAM row/bank-aware memory allocator |
| ๐ C. KV Cache migration/recomputation overhead | ๊ธด ๋ฌธ์ฅ์ด๋ ๋๊ท๋ชจ ๋ฐฐ์น ์ KV Cache๊ฐ DRAM์ ์ด๊ณผํ์ฌ ์ฑ๋ฅ ์ ํ | ๐น PagedAttention ๋ฐฉ์ ์ฑํ (์ ๋์ค OSDI'23) ๐น Layer-wise KV compression, recomputation trade-off ์ฐ๊ตฌ ๐น CPU-GPU-Disk ๊ณ์ธตํ๋ ์บ์ ๊ด๋ฆฌ |
| โ๏ธ D. Static hardware resource partitioning | Logic-PIM๊ณผ xPU์ ๋ฆฌ์์ค๋ฅผ ์ ํด์ง ์ฐ์ฐ ๊ณ์ธต์๋ง ์ฌ์ฉ โ under-utilization ๊ฐ๋ฅ | ๐น Elastic co-execution ๊ตฌ์กฐ (๋ฒ์ฉ ์ฐ์ฐ๊ธฐ๋ฅผ ๋์ ํ ๋น) ๐น Resource Virtualization: on-demand PIM/XPU pooling |
| ๐พ E. Weight duplication ๋ฌธ์ (Splitwise์ ์ ์ฌ) | Prefill/decoding ๋ถ๋ฆฌ๋ฅผ ์ํ Layer weight ๋ณต์ ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๋ฐ์ | ๐น Weight offloading/streaming ๊ตฌ์กฐ ๐น Expert weight eviction/cache ๊ต์ฒด ๋ฐฉ์ ์ฐ๊ตฌ ๐น On-the-fly expert recomputation (e.g., Code-MoE ๊ตฌ์กฐ) |
| ๐ง F. Expert ์ ํ ๋ถ๊ท ํ (Expert Skew) | ์ค์ ์ถ๋ก ์์๋ ํน์ Expert์ ๋ง์ ํ ํฐ์ด ๋ชฐ๋ฆฌ๋ ํ์ ๋ฐ์ | ๐น Load-balanced MoE router (e.g., Switch-Router [Fedusโ21]) ๐น Routing-aware scheduling (traffic-aware ํ ํฐ ๋ถ๋ฐฐ) ๐น Entropy-regularized gating function |
๐ 2. ๊ด๋ จ ํ์ ์ฐ๊ตฌ ํ๋ฆ ์์ธ
๐ธ A. Reinforcement Learning ๊ธฐ๋ฐ Co-processing Scheduler
- ๋ฌธ์ : ํ์ฌ Duplex๋ LUT ๊ธฐ๋ฐ์ผ๋ก ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ ์ ํ ๋น
- ๋์: DeepRL์ ํ์ฉํด ๊ฐ stage์ Op/B, batch size, latency SLA ๋ฑ์ state๋ก ๋ฐ์์ ์ ๋ฌธ๊ฐ, attention ์ฐ์ฐ์ ๋ถ๋ฐฐ ๊ฒฐ์ ์ ๊ฐํํ์ต์ผ๋ก ํ์ต
- ์์:
- Action: expert 0~7 ์ค Logic-PIM์ ํ ๋นํ subset
- Reward: TBT latency ๊ฐ์๋, throughput ์ฆ๊ฐ๋
๐ธ B. DRAM-aware Memory Allocation
Duplex๋ Bank Bundle ๋ถํ ์ ํตํด xPU์ Logic-PIM ๋ณ๋ ฌ ์ ๊ทผ์ ๋ณด์ฅํ์ง๋ง, bank-level conflict๋ ๋ฐํ์ ๋ณต์ก๋๋ฅผ ์ ๋ฐ
๋์ ์ฐ๊ตฌ:
- DRAM-aware allocators: allocation ์ bank/index-aware placement
- Compile-time placement: expert weight, KV cache ๋ฑ์ bank bundle index ๊ธฐ์ค์ผ๋ก mapping
๐ธ C. KV ์บ์ ์๋ฐ ๋์ (PagedAttention ๋ฑ)
๋ ผ๋ฌธ์์ ์ธ๊ธํ ๋ฐฉ์:
- Cache๊ฐ ๋์น๋ฉด migration to CPU memory or recomputation
๋์ ํ๋ฆ:
- PagedAttention (Yu et al., OSDIโ23):
- ์บ์๋ฅผ CPU์ ํ์ด์งํ๊ณ ํ์์ GPU๋ก ์ค์ํ
- swap ๋น์ฉ์ latency SLA ๊ธฐ๋ฐ์ผ๋ก ์กฐ์
- Sparse-KV Cache:
- ์ผ๋ถ Layer์ KV๋ง ์ ์ฅํ๊ณ ๋๋จธ์ง๋ recompute
- LRU ๊ธฐ๋ฐ eviction ๋ฑ ๊ฐ๋ฅ
- PagedAttention (Yu et al., OSDIโ23):
๐ธ D. Unified Reconfigurable Architecture (PIM-XPU Fusion)
- ๋ฌธ์ : xPU, Logic-PIM์ด ๊ณ ์ ๋ ์ญํ ๋ง ์ํ
- ๋์:
- Elastic Processing Pool ํํ๋ก ํ๋์ ์ฐ์ฐ๊ธฐ๋ฅผ MoE or Attention or FC์ ํ ๋น ๊ฐ๋ฅ
- ์์: Tile-based processing unit (TPU/TPGRA ์คํ์ผ), ๋์ ์ผ๋ก ์ฐ์ฐ๊ธฐ ์ฌ๊ตฌ์ฑ
๐ธ E. Weight Duplication ํํผ
- Splitwise ๋ฑ ์์คํ ์ prefill/decoding ๋ถ๋ฆฌ ๊ตฌ์กฐ๋ก MoE weight ์ค๋ณต
- ๋์ ํ๋ฆ:
- Expert weight streaming (on-demand load)
- Expert compression: quantized format ์ ์ฅ ํ ํ์์ decompress
- Expert recomputation: decoder layer๋ฅผ recomputeํ๊ณ weight๋ ์ ์ฅํ์ง ์์ (activation-based replay)
๐ธ F. Expert Skew ๋์
Switch Transformer (Fedus et al., 2021)์์ ์ธ๊ธ๋ ๋ฌธ์
- Gate๊ฐ ํน์ expert์ ์ง์ค โ GPU load imbalance
๋์ ๊ธฐ์ :
- Balanced Router: top-k ์ ํ ์ diversity ๋ณด์ฅ (e.g., entropy regularization)
- Load-aware gating: ์ ๋ฌธ๊ฐ์ current load๋ฅผ ๋ฐ์ํ์ฌ Gate Softmax ์กฐ์
- Token Re-routing: ์์ธก ๋จ๊ณ์์ ๋ผ์ฐํ ์ ์์ ํ์ฌ Skew ์ํ
๐ ์ ๋ฆฌ: Duplex์ ํ์ฅ์ ์ํ ์ฐ๊ตฌ ํ๋ฆ ์ง๋
โโโโโโโโโโโโโโโโ
โ Duplex ๊ตฌ์กฐ โ
โโโโโโฌโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. Co-processing Sched. โ Reinforcement-based โ
โ 2. Memory mapping โ DRAM-aware runtime โ
โ 3. KV Cache ๋ฌธ์ โ PagedAttention, SparseCache โ
โ 4. Weight duplication โ Streaming, Recomputation โ
โ 5. Expert skew โ Balanced Router / Load-Aware Gate โ
โ 6. Elastic HW ํ์ฉ โ Reconfigurable / Unified PIM โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๋ง๋ฌด๋ฆฌ
Duplex๋ ์ฐ์ํ ํ๋์จ์ด ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ์ง๋ง, ์ค์๊ฐ ๋ถํ ๋ณํ, ๋ถ๊ท ํ expert ํธ๋ํฝ, ๋ฉ๋ชจ๋ฆฌ ์ค์ผ์ค๋ง ๋ณต์ก์ฑ, ์บ์ ์๋ฐ ๋ฑ์ ์ฌ์ ํ ๋ฏธํด๊ฒฐ ๊ณผ์ ๋ก ๋จ์ ์์ต๋๋ค. ์ด์ ๋ํ ์ฐ๊ตฌ๋ ๋์ ์คํํ๊ฒฝ ์ ์์ฑ๊ณผ ์ค์ผ์ผ๋ฌ๋ธ ๋ชจ๋์ฑ์ด๋ผ๋ ๋ ์ถ์ ์ค์ฌ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ, ์์ผ๋ก์ LLM serving ์์คํ ์์ ํ์ ์์๋ก ์๋ฆฌ์ก์ ๊ฒ์ ๋๋ค.
๋ฌผ๋ก ์ ๋๋ค. Duplex ๋ ผ๋ฌธ์ ๊น์ด ์๊ฒ ์ดํดํ๊ธฐ ์ํด ๋ค์ ์ธ ๊ฐ์ง ์ง๋ฌธ์ ์ค์ฌ์ผ๋ก ์๊ฐํด๋ณด์๋ฉด ๋งค์ฐ ํจ๊ณผ์ ์ ๋๋ค. ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ์ฝ๊ฒ ํฌ๋งทํ์ต๋๋ค.
Q : Duplex๋ ์ ๊ธฐ์กด PIM ๊ตฌ์กฐ(์: Bank-PIM, BankGroup-PIM)๋ณด๋ค Logic-PIM ๊ตฌ์กฐ๋ฅผ ์ ํํ์ผ๋ฉฐ, ์ด ๊ตฌ์กฐ๊ฐ ์ค์ ๋ก MoE์ GQA ์ฐ์ฐ์์ ์ด๋ค ๋ฐฉ์์ผ๋ก Op/B ํจ์จ์ฑ๊ณผ ์ฐ์ฐ ๋ณ๋ ฌ์ฑ์ ๊ฐ์ ํ๋๊ฐ?
์ข์ ์ง๋ฌธ์ ๋๋ค. ์ด ์ง๋ฌธ์ Duplex ๋ ผ๋ฌธ์ ์ค๊ณ ๊ทผ๊ฑฐ์ ์ํคํ ์ฒ ์ ํ์ด ์ฑ๋ฅ์ ์ด๋ค ์ํฅ์ ์ฃผ์๋์ง๋ฅผ ๊น์ด ํ์ ํ๋ ํต์ฌ์ ๋๋ค. ์๋์์ ๋ ผ๋ฌธ ๋ด์ฉ๊ณผ ํจ๊ป ์ ํด์์ ํตํฉํ์ฌ ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
โ ์ ๊ธฐ์กด PIM(Bank-PIM, BankGroup-PIM)์ด ์๋ Logic-PIM์ธ๊ฐ?
1. ๊ธฐ์กด PIM ๊ตฌ์กฐ์ ํ๊ณ
| ๊ตฌ์กฐ | ์ฐ์ฐ๊ธฐ ์์น | Op/B ํ๊ฒ ๋ฒ์ | ์ฃผ์ ํ๊ณ |
|---|---|---|---|
| Bank-PIM | DRAM bank ๋ด๋ถ | < 1 | ์ฐ์ฐ๊ธฐ ์ ์ ํ, ๊ณ Op/B ์ ๋นํจ์จ, DRAM ๊ณต์ ์ ์ฝ |
| BankGroup-PIM | DRAM bank group | < 1 | ์ ์ฌ ๋ฌธ์ + DRAM ๋ด ๋ฒํผ ํฌ๊ธฐ ์ ํ |
| Logic-PIM (Duplex ์ ์) | HBM logic die | 1~32 (MoE, GQA์ ์ ํฉ) | ์ฐ์ฐ๊ธฐ ํ์ฅ ์ฉ์ด, ๊ณ ๋์ญํญ TSV ํ์ฉ ๊ฐ๋ฅ |
- DRAM die์ ์ฐ์ฐ๊ธฐ๋ฅผ ๋ด์ฅํ๋ฉด ๋ฉด์ , ๊ณต์ , ๋ฐ์ด ์ธก๋ฉด์์ scaling์ด ๋งค์ฐ ์ ํ์
- ๋๋ถ๋ถ์ LLM ์ฐ์ฐ(MoE FFN, GQA)์ Op/B๊ฐ 1~32 ๋ฒ์์ ์์น (๋ ผ๋ฌธ Fig. 4b Roofline ์ฐธ๊ณ )
- Bank-PIM์ low Op/B ์ฐ์ฐ์์๋ ์ข์ง๋ง, MoE๋ GQA์ฒ๋ผ ์ฐ์ฐ ๋ฐ๋๊ฐ ์กฐ๊ธ๋ง ์ฌ๋ผ๊ฐ๋ฉด ์ฐ์ฐ๊ธฐ ๋ณ๋ชฉ ๋ฐ์
2. Logic-PIM ๊ตฌ์กฐ์ ์ฅ์
(1) ์ฐ์ฐ ๋ฐ๋ (Op/B)
- Logic-PIM์ ์ฐ์ฐ๊ธฐ๋ฅผ DRAM logic die์ ๋ฐฐ์น
- ๋ ผ๋ฌธ ๊ธฐ์ค Logic-PIM์ GEMM ์ฐ์ฐ์์ Op/B๊ฐ 8~32์ธ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ฎ์ EDAP (energy-delay-area product)๋ฅผ ๊ธฐ๋ก (๋ ผ๋ฌธ Fig. 8)
(2) ์ฐ์ฐ ํ์ฅ์ฑ
- TSV (Through Silicon Via) ๋ฐ๋๋ฅผ ์ฆ๊ฐ์์ผ logic die โ DRAM die ๊ฐ ๋ด๋ถ ๋์ญํญ์ 4ร ํฅ์
- ์ด๋ก ์ธํด DRAM bandwidth ๋ณ๋ชฉ ์์ด ์ฐ์ฐ๊ธฐ๋ฅผ ๋ ๋ง์ด, ๋ ๋น ๋ฅด๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
(3) ์ฐ์ฐ ๋ณ๋ ฌ์ฑ ํ๋ณด
- DRAM bank bundle ๋จ์๋ก ๋ณ๋ ฌ read ์ํ
- ๊ฐ Logic-PIM unit์ ๋ ๋ฆฝ์ ์ผ๋ก GEMM, softmax, activation ์ฒ๋ฆฌ ๊ฐ๋ฅ
- โ MoE expert ๊ฐ ๋ณ๋ ฌ์ฑ, attention head/request ๊ฐ ๋ณ๋ ฌ์ฑ์ ๊ทธ๋๋ก ํ์ฉ
โ๏ธ MoE์ GQA ์ฐ์ฐ์์ Logic-PIM์ ๊ตฌ์ฒด์ ์ญํ
1. MoE Layer (Top-k FFN)
- ๊ฐ ํ ํฐ์ top-2 expert๋ก ๋ผ์ฐํ ๋จ โ ๊ฐ expert์ ์ฒ๋ฆฌ ํ ํฐ ์๋ ์์ด
- Logic-PIM์ ์ ์ ํ ํฐ์ ํ ๋น๋ฐ์ expert๋ฅผ ์ฒ๋ฆฌ, xPU๋ ๋ง์ ํ ํฐ expert๋ฅผ ์ฒ๋ฆฌ (expert co-processing)
- ๊ฐ Logic-PIM์์:
- Up-Projection (GEMM)
- Gated Activation
- Down-Projection (GEMM)
- ์ดํ xPU์์ all-reduce๋ก ๊ฒฐ๊ณผ ๋ณํฉ
โ token-level imbalance๋ฅผ ํ์ฉํ ๋ณ๋ ฌ ๋ถ์ฐ ์คํ
2. GQA Layer (Grouped Query Attention)
- GQA๋ deggrp๊ฐ์ head๊ฐ K/V๋ฅผ ๊ณต์
- decoding ๋จ๊ณ์ attention ์ฐ์ฐ์ GEMV ํํ (๋ฎ์ Op/B)
- Logic-PIM์ request-level, head-level ๋ณ๋ ฌ๋ก ๊ฐ attention ์ฐ์ฐ์ ์ํ
โ GQA ์ฐ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋์ด ๋๊ณ ์ฐ์ฐ๋์ด ์ ์ ํน์ฑ์ ์ ๋ง์ถค
๐ ์ฑ๋ฅ ์์น ์์ฝ (๋ ผ๋ฌธ ๊ฒฐ๊ณผ)
| ๊ตฌ์กฐ | Throughput | TBT latency | Energy | ์ ํฉ Op/B |
|---|---|---|---|---|
| GPU | 1.0ร | ๊ธฐ์ค์ | ๊ธฐ์ค์ | ์ ์ฒด ๊ฐ๋ฅ, ์ Op/B์์ ๋นํจ์จ |
| Bank-PIM | ~1.2โ1.4ร | ์ฝ๊ฐ ๊ฐ์ | ์ผ๋ถ ์ ๊ฐ | Op/B < 1 |
| Logic-PIM (Duplex) | ์ต๋ 2.67ร | โ 58% ์ด์ | โ 42% | Op/B 1โ32 (MoE, GQA) |
๐ง ๊ฒฐ๋ก ๋ฐ ์ ํด์
Duplex๋ ๊ธฐ์กด PIM ๊ตฌ์กฐ๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๊ฐ์ง๋ ๊ณต์ ์ ์ฝ, ์ฐ์ฐ๊ธฐ ํ์ฅ ํ๊ณ, ๋ฉ๋ชจ๋ฆฌ ๋ณ๋ชฉ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด Logic-PIM์ ์ฑํํ์ต๋๋ค. ์ด ๊ตฌ์กฐ๋:
- MoE์ GQA์ฒ๋ผ ๋ฎ์ง๋ง 1 ์ด์์ธ Op/B ์ฐ์ฐ์ ๊ฐ์ฅ ์ ๋ง๊ณ ,
- ๋ณ๋ ฌ์ฑ๊ณผ bandwidth ๋ชจ๋๋ฅผ ๊ณ ๋ คํ ์ฐ์ฐ๊ธฐ ์ค๊ณ ์ ๋ต์ด๋ผ๋ ์ ์์ ๋งค์ฐ ํ์ค์ ์ด๋ฉฐ,
- ํฅํ TSV ๊ธฐ๋ฐ logic-in-memory ์ค๊ณ์ ์์ฉํ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ธ๋ก ํ๊ฐํ ์ ์์ต๋๋ค.
ํ์ํ์๋ฉด Logic-PIM์ DRAM ๋ค์ด ๊ตฌ์กฐ๋ ์ฐ์ฐ ๊ฒฝ๋ก๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๋์ํํด์ ์ค๋ช ๋๋ฆด ์๋ ์์ด์.
Q : Expert์ Attention Co-processing์์ ๊ฐ ์ฐ์ฐ์ xPU์ Logic-PIM์ ์ด๋ป๊ฒ ๋์ ์ผ๋ก ๋ถ๋ฐฐํ๊ณ , ์ด ๊ณผ์ ์์ ์ฐ์ฐ๋ ๋ถ๊ท ํ(Token ์ ์ฐจ์ด, GQA ๊ตฌ์กฐ ๋ฑ)์ ์ด๋ป๊ฒ ํ์ฉํ์ฌ ์ฑ๋ฅ์ ๋์ด๋๊ฐ?
์ด ์ง๋ฌธ์ Duplex์ ํต์ฌ ์ค๊ณ ์์ด๋์ด๋ฅผ ๊น์ด ์ดํดํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. Duplex๋ ๋จ์ํ Layer๋ฅผ ์ฒ๋ฆฌ ์ ๋์ ์ ์ ์ผ๋ก ๋ฐฐ์ ํ๋ ๊ฒ์ด ์๋๋ผ, MoE์ Attention ์ฐ์ฐ์ Fine-grained ์์ค์์ xPU์ Logic-PIM์ ๋์ ์ผ๋ก ๋ถ๋ฐฐํ์ฌ ์ฐ์ฐ ๋ณ๋ ฌ์ฑ๊ณผ ๋ฆฌ์์ค ํ์ฉ๋ฅ ์ ๊ทน๋ํํฉ๋๋ค.
โ ๊ฐ๋ ์์ฝ: Expert & Attention Co-processing
| ๊ตฌ์ฑ ์์ | ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋์ | ๋ถ๋ฐฐ ๊ธฐ์ค | ๋ด๋น ์ฒ๋ฆฌ๊ธฐ |
|---|---|---|---|
| MoE Layer (Experts) | Expert๋ณ FFN | ๊ฐ expert๊ฐ ์ฒ๋ฆฌํ ํ ํฐ ์ | xPU (ํ ํฐ ๋ง์), Logic-PIM (ํ ํฐ ์ ์) |
| Attention Layer (GQA) | Request๋ณ Attention | ์์ฒญ ์ ํ (prefill vs decoding) | xPU (prefill), Logic-PIM (decoding) |
1. ๐ง Expert Co-processing: MoE Layer ์ฒ๋ฆฌ
๐ก ์ ํ์ํ๊ฐ?
- MoE๋ ์ ๋ ฅ ํ ํฐ๋ง๋ค top-k experts (๋ณดํต 2๊ฐ)๋ฅผ ์ ํ
- ์ค์๊ฐ request์์ ๊ฐ expert๊ฐ ์ฒ๋ฆฌํ๋ token ์๊ฐ ๋น๋์นญ์ (skewed)
โ ์ด๋ค expert๋ 100๊ฐ, ์ด๋ค expert๋ 10๊ฐ ์ฒ๋ฆฌ - Logic-PIM์ ๋ฎ์ Op/B์์ ํจ์จ์ ์ด์ง๋ง, ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด ์ ํ์
โ ํฐ expert๋ xPU, ์์ expert๋ Logic-PIM์ ๋ถ์ฐ
๐ฆ ๋ถ๋ฐฐ ์๊ณ ๋ฆฌ์ฆ
- Gate-projection FC๋ฅผ ํตํด ๊ฐ ํ ํฐ โ top-2 expert ๋ผ์ฐํ
- ๊ฐ expert๊ฐ ๋งก์ token ์๋ฅผ ์ง๊ณ
- ๋
ผ๋ฌธ์ด ์ ์ํ LUT ๊ธฐ๋ฐ ์ฐ์ฐ ์๊ฐ ์ถ์ ํ๋ฅผ ์ฌ์ฉ:
- ๊ฐ expert ์ฒ๋ฆฌ ์๊ฐ (token ์ ๊ธฐ์ค) in xPU vs Logic-PIM
- ๋ชฉํ: ์ ์ฒด ์คํ ์๊ฐ์ด ์ต์๊ฐ ๋๋๋ก expert๋ฅผ ํ ๋น
โจ ์ฑ๋ฅ ํฅ์ ์์ธ
- ๋ชจ๋ expert๋ฅผ xPU์์ ์ฒ๋ฆฌํ๋ฉด load imbalance๋ก xPU under-utilization
- ๋ชจ๋ expert๋ฅผ Logic-PIM์์ ์ฒ๋ฆฌํ๋ฉด ์ฐ์ฐ ๋ณ๋ชฉ ๋ฐ์
- ์ ์ ํ ๋ถ๋ฐฐํ๋ฉด MoE Layer ์คํ ์๊ฐ ์ต๋ 1.36ร ๋จ์ถ, throughput ์ต๋ 2.67ร ์์น
2. ๐ Attention Co-processing: GQA ์ฒ๋ฆฌ
๐ก ์ ํ์ํ๊ฐ?
- Attention layer๋ prefill vs decoding ๋จ๊ณ๋ณ๋ก Op/B ์ฐจ์ด๊ฐ ํผ
- Prefill: ์ ์ฒด ํ ํฐ ์ฌ์ฉ โ Op/B ๋์ (GEMM)
- Decoding: ํ ํฐ 1๊ฐ vs KV ์ ์ฒด โ Op/B ๋ฎ์ (GEMV)
๐ฆ ๋ถ๋ฐฐ ์ ์ฑ
| ์์ฒญ ์ ํ | ์ฐ์ฐ ํน์ฑ | ์ฒ๋ฆฌ๊ธฐ |
|---|---|---|
| Prefill | Q: ์ ์ฒด ์ ๋ ฅ (512๊ฐ), KV ๊ณต์ | xPU |
| Decoding | Q: 1๊ฐ ํ ํฐ, KV ๊ณต์ | Logic-PIM |
- Q/K/V ์์ฑ์ ๊ณตํต์ ์ผ๋ก xPU์์ ์ํ
- Logic-PIM์ request-level, head-level ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ก Attention ์ฐ์ฐ
โจ ์ฑ๋ฅ ํฅ์ ์์ธ
- Attention layer๋ ์ ์ฒด ์ถ๋ก ์์ latency ๋ณ๋ชฉ ์์ ์ค ํ๋
- Decoding ๋จ๊ณ์์ ๋๋ถ๋ถ์ ์๊ฐ ์๋น๋จ โ Logic-PIM์ ํตํด latency 58.3% ๊ฐ์
3. ๐ ๋ถ๋ฐฐ ์ ๊ณ ๋ ค๋๋ “์ฐ์ฐ๋ ๋ถ๊ท ํ"์ ํ์ฉ
A. Expert skew
- ์ค์ ์ํฉ: ํน์ expert์ token์ด ๋ชฐ๋ฆผ (e.g., expert 0์ด ์ ์ฒด token์ 30% ์ฐจ์ง)
- โ ๊ฐ์ฅ ํ ํฐ์ด ๋ง์ expert๋ค๋ง xPU์ ํ ๋น
- token ์ ๊ธฐ์ค ์ ๋ ฌ โ ์์ N๊ฐ๋ฅผ xPU์ ํ ๋นํ๊ณ ๋๋จธ์ง๋ Logic-PIM์์ ์ฒ๋ฆฌ
B. GQA ๊ตฌ์กฐ์ ๊ทธ๋ฃนํ ํน์ง
- deggrp = 4~8๋ก ๊ตฌ์ฑ๋๋ฉด KV ๊ณต์ ์ฆ๊ฐ โ ์ฐ์ฐ Op/B ์ฆ๊ฐ
- Prefill์ GQA๋ deggrp ๋จ์ GEMM โ xPU์ ์ ํฉ
- Decoding์ Q 1๊ฐ โ GEMV โ Logic-PIM์ด ์คํ๋ ค ์ ํฉ
๐งช ์คํ ๊ฒฐ๊ณผ๋ก ๋ณธ ํจ๊ณผ
| ๊ตฌ์ฑ | MoE ์คํ ์๊ฐ | Attention ์ฒ๋ฆฌ ์๊ฐ | Overall Throughput |
|---|---|---|---|
| All xPU | ๋์ (underutilized) | ๋นํจ์จ์ | 1.0ร (baseline) |
| All Logic-PIM | ๋ณ๋ชฉ ๋ฐ์ | ์ผ๋ถ ๊ฐ์ | โ |
| Co-processing | Load-balanced | Op/B๋ณ ์ต์ ์ฒ๋ฆฌ | โ 2.67ร |
โ ๊ฒฐ๋ก ์์ฝ
Duplex๋ ๋จ์ํ ๊ณ์ธต ๋ถํ ์ด ์๋, ํ ํฐ ์ ๊ธฐ๋ฐ Expert ๋ถ๋ฐฐ + ์์ฒญ ์ ํ ๊ธฐ๋ฐ Attention ๋ถํ ์ด๋ผ๋ fine-grained Co-processing ์ ๋ต์ ๋์ ํฉ๋๋ค. ์ด ์ ๋ต์ ๋ค์์ ์คํํฉ๋๋ค:
- ์ฐ์ฐ ๋ฆฌ์์ค ํ์ฉ๋ฅ ๊ทน๋ํ
- MoE ๋ฐ GQA์์ ๋ฐ์ํ๋ ๋ถ๊ท ํ์ ์ ๊ทน ํ์ฉ
- ๋ฎ์ latency์ ๋์ throughput์ ๋์์ ๋ฌ์ฑ
ํ์ํ์๋ฉด ์ด Co-processing ์๊ณ ๋ฆฌ์ฆ์ ์์ฌ์ฝ๋๋ ๊ทธ๋ฆผ์ผ๋ก ์๊ฐํํด์ ์ ๋ฆฌํด๋๋ฆด ์๋ ์์ด์.
Q : Duplex ์ํคํ ์ฒ๋ continuous batching ๊ธฐ๋ฐ LLM ์ถ๋ก ์ ์ต์ ํ๋์ด ์๋ค๊ณ ์ฃผ์ฅํ๋๋ฐ, ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์๋๋ฆฌ์ค๋ ์คํ ๊ฒฐ๊ณผ๊ฐ ์ด๋ฌํ ์ฃผ์ฅ์ ๊ทผ๊ฑฐ๊ฐ ๋๋ฉฐ, ๋ฐ๋๋ก ์ด๋ค ์กฐ๊ฑด์์ ์ด ๊ตฌ์กฐ๊ฐ ๋นํจ์จ์ ์ผ ์ ์๋๊ฐ?
Duplex๊ฐ Continuous Batching ๊ธฐ๋ฐ LLM ์ถ๋ก ์ ์ต์ ํ๋์ด ์๋ค๋ ์ฃผ์ฅ์ ๋ ผ๋ฌธ ์ ์ฒด์์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์กฐ๋๋ ํต์ฌ์ ๋๋ค. ์ด๋ฅผ ๋ท๋ฐ์นจํ๋ ๊ตฌ์ฒด์ ์ธ ์๋๋ฆฌ์ค์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํ๊ณ , ๋ฐ๋๋ก Duplex๊ฐ ๋นํจ์จ์ ์ผ ์ ์๋ ์กฐ๊ฑด๋ ํจ๊ป ๋ถ์ํด๋ณด๊ฒ ์ต๋๋ค.
โ Duplex๊ฐ Continuous Batching์ ์ต์ ํ๋ ์ด์
๐ Continuous Batching ์ด๋?
- LLM inference๋ฅผ prefill (์ ์ฒด ์ ๋ ฅ) + ๋ฐ๋ณต decoding (ํ ํฐ ์์ฑ) ๋จ๊ณ๋ก ๋ถ๋ฆฌ
- ๊ธฐ์กด์ฒ๋ผ request-level์ด ์๋ stage-level batching ์ ์ฉ
- ์๋ก์ด request๊ฐ ์ค๋ฉด mixed stage๋ก ํฌํจ์์ผ wait time ๊ฐ์, throughput ๊ทน๋ํ
1. ๐ ์คํ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ ์ ๋์ ๊ทผ๊ฑฐ
A. Stage ๋น์ค ๋ถ์ (๋ ผ๋ฌธ Fig. 5a)
| Stage ์ ํ | ์ ์ฒด stage ์ค ๋น์จ | ํน์ง |
|---|---|---|
| Decoding-only | ์ฝ 80~90% | Op/B ๋ฎ์, ์ฃผ์ ๋ณ๋ชฉ ๋ฐ์ |
| Mixed stage | 10~20% | Prefill ํฌํจ, Op/B ๋ค์ ๋์ |
โ ๋๋ถ๋ถ์ ์ฐ์ฐ์ด decoding-only stage์์ ๋ฐ์ํ๋ฉฐ, ์ด ๊ตฌ๊ฐ์ด low Op/B ์ฐ์ฐ ์์ฃผ๋ก ๊ตฌ์ฑ๋จ
โ Logic-PIM ์ต์ ์ ์ฉ ๋์
B. Throughput & Latency ์ฑ๋ฅ ํฅ์ (๋ ผ๋ฌธ Fig. 11, 12, 13)
| ๋น๊ต ๋์ | Throughput (tokens/s) | TBT Latency ๊ฐ์ (p50) |
|---|---|---|
| GPU | ๊ธฐ์ค์ (1.0ร) | - |
| 2ร GPU | 1.76ร | ์ผ๋ถ ๊ฐ์ |
| Duplex | 2.07ร | 58.3% ๊ฐ์ |
| Duplex+PE+ET | ์ต๋ 2.67ร | ์ต๋ 60% ๊ฐ์ |
โ continuous batching์์ dominant stage์ธ decoding-only๋ฅผ Logic-PIM์ผ๋ก ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํจ์ผ๋ก์จ
โ ์ ์ฒด system-level latency์ throughput์ ๋์์ ํฅ์์ํด
C. ์ค์๊ฐ ์์ฒญ ์๋๋ฆฌ์ค (Fig. 13, QPS ์คํ)
- QPS (Queries per Second) ์ฆ๊ฐ์ ๋ฐ๋ฅธ latency ๋ณํ
| QPS | GPU | 2ร GPU | Duplex |
|---|---|---|---|
| 4~9 | ์ฒ๋ฆฌ ๊ฐ๋ฅ | ๊ฐ๋ฅ | ๊ฐ๋ฅ |
| 10~14 | ์ฒ๋ฆฌ ๋ถ๊ฐ (ํ ๋๊ธฐ ์ฆ๊ฐ) | ๊ฐ๋ฅ | ๊ฐ๋ฅ (14 QPS๊น์ง) |
| โฅ15 | ๋ชจ๋ ๊ตฌ์กฐ์์ overload | overload | overload |
โ ๋ฎ์ TBT ์ ์ง + ๋์ ์ต๋ ์ฒ๋ฆฌ๋(QPS) ๋ณด์ฅ
โ Duplex๋ Continuous Batching ํ๊ฒฝ์์์ serving ์์ ์ฑ๋ ์ฐ์
2. ๐ก Continuous Batching ๊ตฌ์กฐ์ Duplex ์ค๊ณ์ Alignment
| Duplex ์ค๊ณ ์์ | Continuous Batching๊ณผ์ ์ ํฉ์ฑ |
|---|---|
| Logic-PIM์ low Op/B ์ต์ ํ | ๋๋ถ๋ถ decoding-only stage ์ฐ์ฐ์ด ํด๋น๋จ |
| Co-processing (expert/token ๋จ์) | stage๋ณ ๋ค์ํ token ์์ ๋ง์ถคํ ๋ถ๋ฐฐ ๊ฐ๋ฅ |
| KV cache ๋ถ๋ฆฌ ๋ฐ migration ๊ตฌ์กฐ | decoding stage ์บ์ ์ฆ๊ฐ ๋ฌธ์ ๋ฅผ ๋์ํ ์ ์๋๋ก ์ค๊ณ |
| Bank-bundle ๊ธฐ๋ฐ DRAM ๋งคํ | decoding stage ์ง์ค ์ DRAM ์ถฉ๋ ํํผ |
โ ๏ธ Duplex๊ฐ ๋นํจ์จ์ ์ผ ์ ์๋ ์กฐ๊ฑด
1. Prefill ์ค์ฌ ์์ฒญ ๋น์ค์ด ๋์ ๋ (e.g., ๋จ๋ฐํ Q&A)
- Continuous Batching์ ์ด์ ์ด ํฌ์ง ์์ โ ๋๋ถ๋ถ mixed stage
- Prefill ์ฐ์ฐ (GQA, FC ๋ฑ)์ high Op/B โ GPU๊ฐ ๋ ํจ์จ์
โ ์ด ๊ฒฝ์ฐ Duplex์ Logic-PIM ๋ฆฌ์์ค๊ฐ ๋๊ฑฐ๋ under-utilized ๋ ์ ์์
2. Expert ๊ฐ ํ ํฐ ๋ถํฌ๊ฐ ๊ท ๋ฑํ ๋
- Co-processing์ expert ๊ฐ load imbalance๋ฅผ ํ์ฉํ๋ ๊ตฌ์กฐ
- ๋ชจ๋ expert๊ฐ ๊ฐ์ ์์ ํ ํฐ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ โ ๋ณ๋ ฌ ๋ถ๋ฐฐ ์ด๋ ค์ โ xPU ๋จ์ผ ์ฒ๋ฆฌ์ ์ ์ฌ
โ Co-processing ์ด์ ์ด ํฌ์๋จ
3. Sequence length๊ฐ ๋๋ฌด ์งง์ ๊ฒฝ์ฐ
- Op/B ์์ฒด๊ฐ ๋์์ง๊ณ , KV ์บ์๋ ์ ์ด์ ธ Logic-PIM ํ์ฉ ๊ฐ์น๊ฐ ๋ฎ์์ง
- DRAM TSV ํ์ฅ, Logic-PIM area overhead ๋๋น ์ฑ๋ฅ ํฅ์์ด ์ ์
โ Duplex์ ๊ตฌ์กฐ์ ํฌ์ ๋๋น ์ค์ต์ด ์ค์ด๋ฆ
โ ์ ๋ฆฌ
Duplex๋ continuous batching์์ decoding-only stage๊ฐ ์ฑ๋ฅ ๋ณ๋ชฉ์ด ๋๋ ๊ตฌ์กฐ์ ํน์ฑ์ ์ ํํ ํฌ์ฐฉํ์ฌ,
- Logic-PIM์ผ๋ก low Op/B ์ฐ์ฐ์ ์ฒ๋ฆฌํ๊ณ
- Co-processing์ผ๋ก xPU์ ๋์ ํ์ฉ์ ํตํด
โ latency + throughput + ์๋์ง ํจ์จ์ ๋์์ ๋์ด์ฌ๋ฆฌ๋ ์ํคํ ์ฒ์ ๋๋ค.
ํ์ง๋ง, prefill ๋น์ค์ด ๊ณผ๋ํ๊ฒ ๋๊ฑฐ๋, token ๋ถํฌ๊ฐ ๊ท ๋ฑํ๊ฑฐ๋, sequence๊ฐ ์งง์ ๊ฒฝ์ฐ์๋ Duplex์ ๊ตฌ์กฐ์ ์ฅ์ ์ด ์ฝํ๋ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Duplex๋ โLLM Serving ํ๊ฒฝ์์ ๋ํํ continuous generation ์ถ๋ก ์ ์ต์ ํ๋ ๊ตฌ์กฐโ๋ผ๊ณ ํ๊ฐํ ์ ์์ต๋๋ค.
ํ์ํ์๋ฉด Duplex๊ฐ ๋นํจ์จ์ ์ธ ์กฐ๊ฑด์์ ์ด๋ป๊ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ ์ ์์์ง๋ ์ ์ํด๋๋ฆด ์ ์์ด์.
๋๊ธ