๋…ผ๋ฌธ ๋งํฌ

๊ฐ•์ ๊ณผ ๋…์ฐฝ์„ฑ, ํ•ต์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ทธ๋ฆฌ๊ณ  ํ•œ๊ณ„

๋ฌผ์–ด๋ณธ ๊ฒƒ: ์ด ๋…ผ๋ฌธ์„ ์•„์ฃผ ์ž์„ธํ•˜๊ฒŒ ์ฝ๊ณ  ๋…ผ๋ฌธ์˜ ๊ฐ•์ ๊ณผ ๋…์ฐฝ์ ์ธ ์ง€์ ์„ ์„ค๋ช…ํ•ด์ฃผ๊ณ  ํ•ต์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜ˆ์‹œ ์ž…๋ ฅ์„ ๋“ค์–ด์„œ ์ „์ฒด์ ์ธ ๊ณผ์ •์„ ์„ค๋ช…ํ•ด์ค˜ ์ถ”๊ฐ€์ ์œผ๋กœ ๋…ผ๋ฌธ์˜ ํ•œ๊ณ„์ ์— ๋Œ€ํ•ด์„œ๋„ ์•Œ๋ ค์ค˜

๐Ÿ“Œ ๊ฒฐ๋ก  ์š”์•ฝ

๋…ผ๋ฌธ *“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 ๊ณผ์ •

๋‹จ๊ณ„์ž‘์—… ์„ค๋ช…
1Gate-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 ์ˆ˜ํ–‰
5down-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.0x1.0x
Duplex2.07ร—โ†“58.3%โ†“28.2%
Duplex+PE+ET2.67ร—์ตœ๋Œ€ โ†“60.2%์ตœ๋Œ€ โ†“42.0%
2ร—GPU1.76ร—์œ ์‚ฌโ†‘ ์—๋„ˆ์ง€ ์†Œ๋น„

โš ๏ธ ํ•œ๊ณ„์  ๋ฐ ๊ณ ๋ ค์‚ฌํ•ญ

๊ตฌ๋ถ„์„ค๋ช…
๐Ÿง  Expert skew dependencyCo-processing ํšจ๊ณผ๋Š” ์ „๋ฌธ๊ฐ€ ๊ฐ„ ํ† ํฐ ์ˆ˜ ๋ถˆ๊ท ํ˜•์ด ์žˆ์„ ๋•Œ ๊ทน๋Œ€ํ™”๋จ. ๊ท ์ผ ๋ถ„ํฌ์ผ ๊ฒฝ์šฐ ํšจ์œจ ๊ฐ์†Œ
๐Ÿ” KV cache ๊ด€๋ฆฌ๊ธด ์‹œํ€€์Šค ๋ฐ ๋Œ€ํ˜• ๋ฐฐ์น˜ ์‹œ KV ์บ์‹œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ณ‘๋ชฉ. PagedAttention ๋“ฑ์˜ ์บ์‹œ ์ด๊ด€ ๊ธฐ๋ฒ• ํ•„์š”
๐Ÿ”ƒ Prefill-Decode ๋ถ„๋ฆฌ ์ฒ˜๋ฆฌSplitwise์™€ ์œ ์‚ฌํ•œ prefill/decoding ๋…ธ๋“œ ๋ถ„๋ฆฌ ์‹œ Throughput ํ•˜๋ฝ ๋ฐœ์ƒ (๋น„ํšจ์œจ์  weight ๋ณต์ œ, ํ™œ์šฉ๋ฅ  ์ €ํ•˜)
๐Ÿ”Œ TSV ์ถ”๊ฐ€ ๋ฐ PIM area overheadTSV์™€ ๋กœ์ง ์—ฐ์‚ฐ๊ธฐ ์ถ”๊ฐ€๋กœ 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 LayerTop-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 - ์˜ˆ์‹œ ๊ธฐ๋ฐ˜ ๋‹จ๊ณ„

  1. Gate Projection ์‹คํ–‰ (xPU)

    • ๊ฐ ํ† ํฐ์ด top-2 experts ์„ ํƒ๋จ
    • ์˜ˆ:
      • Req0: ํ† ํฐ 512๊ฐœ ์ค‘ โ†’ Expert 0: 120๊ฐœ, Expert 1: 80๊ฐœ
      • Req1: Expert 0: 90๊ฐœ, Expert 2: 100๊ฐœ ๋“ฑ
  2. Expert๋ณ„ ํ† ํฐ ์ˆ˜ ๊ณ„์‚ฐ
    โ†’ Expert๋ณ„๋กœ ์ฒ˜๋ฆฌํ•  ํ† ํฐ ์ˆ˜ ์ƒ์ดํ•จ โ†’ ๋ถˆ๊ท ํ˜• ๋ฐœ์ƒ

  3. ์ž‘์—… ๋ถ„๋ฐฐ (์ •์ฑ… ๊ธฐ๋ฐ˜)

    • xPU: ๋งŽ์€ ํ† ํฐ ํ• ๋‹น๋œ expert (e.g., Expert 0, 2, 5)
    • Logic-PIM: ์ ์€ ํ† ํฐ expert (e.g., Expert 1, 3, 6)
  4. ์—ฐ์‚ฐ ์ˆ˜ํ–‰

    • ๊ฐ ์—ฐ์‚ฐ๊ธฐ์—์„œ:
      • Up-Projection (GEMM)
      • Activation (e.g., SiLU)
      • Down-Projection (GEMM)
  5. ๊ฒฐ๊ณผ ํ•ฉ์‚ฐ (xPU)

    • ๊ฐ Logic-PIM๊ณผ xPU๊ฐ€ ๊ณ„์‚ฐํ•œ output์„ all-reduceํ•˜์—ฌ ์ตœ์ข… MoE output ์ƒ์„ฑ
    • ์ด ๋‹จ๊ณ„๋Š” xPU๊ฐ€ ์ˆ˜ํ–‰ํ•จ

โœ… ์ด ๋ฐฉ์‹์€ ํ† ํฐ ์ˆ˜ ๋ถˆ๊ท ํ˜•์„ ํ™œ์šฉํ•ด ๊ฐ ์—ฐ์‚ฐ๊ธฐ์˜ utilization์„ ๋†’์ž„


โ‘ก Attention Co-processing - ์˜ˆ์‹œ ๊ธฐ๋ฐ˜ ๋‹จ๊ณ„

  1. Request ๋ถ„๋ฅ˜

    • Req3 (Prefill): Q 512๊ฐœ / KV 512๊ฐœ โ†’ GEMM, Op/B ๋†’์Œ
    • Req0~2 (Decoding): Q 1๊ฐœ์”ฉ / KV ๋งŽ์Œ โ†’ GEMV, Op/B ๋‚ฎ์Œ
  2. ์—ฐ์‚ฐ๊ธฐ ๋ถ„๋ฐฐ

    • Prefill attention: xPU
    • Decoding attention: Logic-PIM
  3. Attention ๊ณ„์‚ฐ

    • GQA์ด๋ฏ€๋กœ ๊ฐ group head๋Š” ๋™์ผํ•œ KV๋ฅผ ๊ณต์œ  โ†’ DRAM ์ ‘๊ทผ๋Ÿ‰ ์ ˆ๊ฐ
    • ๊ฐ request ๊ฐ„ ๋…๋ฆฝ โ†’ Logic-PIM์—์„œ Request-level ๋ณ‘๋ ฌ, Head-level ๋ณ‘๋ ฌ ์ˆ˜ํ–‰

๐Ÿ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ๋ฆ„ ์š”์•ฝ (ํ˜ผํ•ฉ ์Šคํ…Œ์ด์ง€ ๊ธฐ์ค€)

TEXT
[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ร—โ†“ ๋‚ฎ์Œโ†“ ์•ฝ๊ฐ„ ๊ฐ์†Œโœ– ์ฆ๊ฐ€
Duplex2.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-processingLayer offloadingFull layer GPU ์ฒ˜๋ฆฌ
Target Op/B1โ€“32<1์ œํ•œ ์—†์Œ, ๊ทธ๋Ÿฌ๋‚˜ ์ € Op/B ๋น„ํšจ์œจ
ํ•˜๋“œ์›จ์–ด ์œ„์น˜Logic Die (HBM ๋‚ด๋ถ€)DRAM Die๋ณ„๋„ SoC
Throughput2.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
ModelMixtral-47B
MoE ๊ตฌ์„ฑ8 experts, top-2 ์„ ํƒ
AttentionGrouped Query Attention (deggrp = 4)
StageMixed stage (Req0~2: decoding, Req3: prefill)

2. ๐Ÿง  ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ (MoE + GQA ๊ธฐ๋ฐ˜ ๋””์ฝ”๋”)

โ–ผ ๊ตฌ์กฐ ์š”์•ฝ

TEXT
[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๊ฐœ ํ† ํฐ

  • ์ˆ˜ํ–‰ ๋‚ด์šฉ:

    1. Token โ†’ Embedding vector (FP16, e.g., 4096-dim)
    2. Embedding โ†’ GQA โ†’ Key, Value โ†’ KV cache๋กœ ์ €์žฅ
    3. GQA ๊ฒฐ๊ณผ + Residual โ†’ MoE โ†’ FFN ๊ฒฐ๊ณผ ํ•ฉ์‚ฐ
    4. ์ตœ์ข… 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. 1-token โ†’ Embedding โ†’ 1ร—4096 ๋ฒกํ„ฐ
    2. Q๋งŒ ์ƒˆ๋กœ ์ƒ์„ฑ + ์ด์ „ KV์™€ Attention ์ˆ˜ํ–‰ (GQA)
    3. MoE Layer: ๊ฐ token โ†’ top-2 experts ์„ ํƒ โ†’ FFN ํ†ต๊ณผ
    4. LM Head์—์„œ ๋‹ค์Œ token ์ƒ์„ฑ
  • ํŠน์ด์ :

    • Q: 1๊ฐœ token โ†’ K/V๋Š” ๊ธฐ์กด 512๊ฐœ์™€ ๋งค์นญ โ†’ GEMV ํ˜•ํƒœ
    • MoE๋Š” ๋ถ„๊ธฐ๋ผ์„œ ๋ณ‘๋ ฌ expert ์ฒ˜๋ฆฌ (ํ† ํฐ๋งˆ๋‹ค ๋‹ค๋ฅธ expert)
    • Op/B: ๋‚ฎ์Œ (~1~4) โ†’ Logic-PIM์—์„œ ์ฒ˜๋ฆฌ ํšจ์œจ์ 

4. โš™๏ธ ๊ฐ ์—ฐ์‚ฐ๋ณ„ ์š”๊ตฌ ์ž์› ๋ถ„์„

์—ฐ์‚ฐ ์ข…๋ฅ˜์„ค๋ช…๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ๋Ÿ‰์—ฐ์‚ฐ๋Ÿ‰ (FLOPs)Op/B (๋Œ€๋žต)์ฒ˜๋ฆฌ ์œ„์น˜
EmbeddingToken โ†’ vectorLin ร— dmodelnegligible-xPU
QKV ์ƒ์„ฑLinear FC ร—3O(Bร—dยฒ)O(Bร—dยฒ)๋†’์Œ (โ‰ฅ32)xPU
GQA AttentionQยทKT โ†’ Softmax โ†’ VGEMV (1ร—d ยท dร—seq)๋‚ฎ์Œ1~8Logic-PIM
MoE GateFC + Top-kdโ†’Nex, k=2๋‚ฎ์Œ~1xPU
MoE FFN (Expert)FC1 โ†’ Act โ†’ FC2Bร—2ร—dintร—dmodel๋†’์Œ (์กฐ๊ฑด๋ถ€)1~10xPU/Logic-PIM ํ˜ผํ•ฉ
AllReduce (MoE output)expert๋ณ„ partial sum ๊ฒฐํ•ฉbandwidth โ†‘๋‚ฎ์Œ-xPU
LM HeadFC โ†’ vocabO(dร—V)๋งค์šฐ ๋†’์Œโ‰ฅ64xPU

โ€ป d: hidden dim (์˜ˆ: 4096), dint: intermediate dim (์˜ˆ: 14336), V: vocab size (์˜ˆ: 50K)


5. ๐Ÿ“ฆ Memory ์š”๊ตฌ๋Ÿ‰ (in decoding stage)

ํ•ญ๋ชฉ์š”๊ตฌ๋Ÿ‰
KV Cache2 ร— d ร— Lin ร— batch size ร— FP16 = 2ร—4096ร—512ร—4ร—2B โ‰ˆ 8MB
MoE expert weight๊ฐ expert FFN: (FC1 + FC2) โ‰ˆ 2 ร— d ร— dint ร— Nex = ์•ฝ 2GB
GQA weightWQ, WK, WV ๊ณต์œ ๋˜๋ฏ€๋กœ ์ „์ฒด FC ์—ฐ์‚ฐ์šฉ ๊ฐ€์ค‘์น˜: ์ˆ˜์‹ญ MB

6. โšก Computing ์š”๊ตฌ๋Ÿ‰ (per stage)

Stage ์œ ํ˜•์ฃผ์š” ์—ฐ์‚ฐFLOPs (๋Œ€๋žต)๋ณ‘๋ชฉ Layer
PrefillGQA + MoE1โ€“2 TFxPU์—์„œ ์ง‘์ค‘ ์ฒ˜๋ฆฌ
Decoding-onlyGQA (GEMV) + MoE (GEMM)์ˆ˜๋ฐฑ GFLogic-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 overheadLogic-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 partitioningLogic-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
  • ๋Œ€์‘ ํ๋ฆ„:

    1. PagedAttention (Yu et al., OSDIโ€™23):
      • ์บ์‹œ๋ฅผ CPU์— ํŽ˜์ด์ง•ํ•˜๊ณ  ํ•„์š”์‹œ GPU๋กœ ์Šค์™€ํ•‘
      • swap ๋น„์šฉ์„ latency SLA ๊ธฐ๋ฐ˜์œผ๋กœ ์กฐ์ ˆ
    2. Sparse-KV Cache:
      • ์ผ๋ถ€ Layer์˜ KV๋งŒ ์ €์žฅํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” recompute
      • LRU ๊ธฐ๋ฐ˜ eviction ๋“ฑ ๊ฐ€๋Šฅ

๐Ÿ”ธ 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์˜ ํ™•์žฅ์„ ์œ„ํ•œ ์—ฐ๊ตฌ ํ๋ฆ„ ์ง€๋„

TEXT
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚ 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-PIMDRAM bank ๋‚ด๋ถ€< 1์—ฐ์‚ฐ๊ธฐ ์ˆ˜ ์ œํ•œ, ๊ณ  Op/B ์‹œ ๋น„ํšจ์œจ, DRAM ๊ณต์ • ์ œ์•ฝ
BankGroup-PIMDRAM bank group< 1์œ ์‚ฌ ๋ฌธ์ œ + DRAM ๋‚ด ๋ฒ„ํผ ํฌ๊ธฐ ์ œํ•œ
Logic-PIM (Duplex ์ œ์•ˆ)HBM logic die1~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 ์—ฐ์‚ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๋Ÿ‰์ด ๋†’๊ณ  ์—ฐ์‚ฐ๋Ÿ‰์ด ์ ์€ ํŠน์„ฑ์„ ์ž˜ ๋งž์ถค


๐Ÿ“Š ์„ฑ๋Šฅ ์ˆ˜์น˜ ์š”์•ฝ (๋…ผ๋ฌธ ๊ฒฐ๊ณผ)

๊ตฌ์กฐThroughputTBT latencyEnergy์ ํ•ฉ Op/B
GPU1.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์— ๋ถ„์‚ฐ

๐Ÿ“ฆ ๋ถ„๋ฐฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  1. Gate-projection FC๋ฅผ ํ†ตํ•ด ๊ฐ ํ† ํฐ โ†’ top-2 expert ๋ผ์šฐํŒ…
  2. ๊ฐ expert๊ฐ€ ๋งก์€ token ์ˆ˜๋ฅผ ์ง‘๊ณ„
  3. ๋…ผ๋ฌธ์ด ์ œ์•ˆํ•œ LUT ๊ธฐ๋ฐ˜ ์—ฐ์‚ฐ ์‹œ๊ฐ„ ์ถ”์ •ํ‘œ๋ฅผ ์‚ฌ์šฉ:
    • ๊ฐ expert ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ (token ์ˆ˜ ๊ธฐ์ค€) in xPU vs Logic-PIM
  4. ๋ชฉํ‘œ: ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก 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)

๐Ÿ“ฆ ๋ถ„๋ฐฐ ์ •์ฑ…

์š”์ฒญ ์œ ํ˜•์—ฐ์‚ฐ ํŠน์„ฑ์ฒ˜๋ฆฌ๊ธฐ
PrefillQ: ์ „์ฒด ์ž…๋ ฅ (512๊ฐœ), KV ๊ณต์œ xPU
DecodingQ: 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-processingLoad-balancedOp/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 stage10~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ร— GPU1.76ร—์ผ๋ถ€ ๊ฐ์†Œ
Duplex2.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 ๋ณ€ํ™”
QPSGPU2ร— GPUDuplex
4~9์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ๊ฐ€๋Šฅ๊ฐ€๋Šฅ
10~14์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€ (ํ ๋Œ€๊ธฐ ์ฆ๊ฐ€)๊ฐ€๋Šฅ๊ฐ€๋Šฅ (14 QPS๊นŒ์ง€)
โ‰ฅ15๋ชจ๋“  ๊ตฌ์กฐ์—์„œ overloadoverloadoverload

โ†’ ๋‚ฎ์€ 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๊ฐ€ ๋น„ํšจ์œจ์ ์ธ ์กฐ๊ฑด์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„์ง€๋„ ์ œ์•ˆํ•ด๋“œ๋ฆด ์ˆ˜ ์žˆ์–ด์š”.

๋ผ์ด์„ ์Šค

์ž‘์„ฑ์ž: Jaehun Ryu

๋งํฌ: https://jaehun.me/posts/duplex-a-device-for-large-language-models-with-mixture-of-experts-grouped-query-attention-and-continuous-batching/

๋ผ์ด์„ ์Šค: CC BY 4.0

์ด ์ €์ž‘๋ฌผ์€ ํฌ๋ฆฌ์—์ดํ‹ฐ๋ธŒ ์ปค๋จผ์ฆˆ ์ €์ž‘์žํ‘œ์‹œ 4.0 ๊ตญ์ œ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ์ฒ˜๋ฅผ ๋ฐํžˆ๋ฉด ์ƒ์—…์  ๋ชฉ์ ์„ ํฌํ•จํ•ด ์ž์œ ๋กญ๊ฒŒ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€