Back to Blog List

Inference in the Shadows: Taming Memory Bandwidth Contention in Mobile LLM Inference with Sereno

Venue & YearOSDI '26
Linkhttps://www.usenix.org/conference/osdi26/presentation/xin
AuthorsTong Xin, Xinrui Shi, Mingkai Dong, and Zeyu Mi
AffiliationInstitute of Parallel and Distributed Systems, Shanghai Jiao Tong University

Introduction

๋ชจ๋ฐ”์ผ LLM ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ํ•˜๋ฉด ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž ์•ฑ๋งŒ ์‹ฌํ•˜๊ฒŒ ๋А๋ ค์ง„๋‹ค

์ €์ž๋“ค์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ LLM์„ ์‹คํ–‰ํ•œ ์ƒํƒœ๋กœ 25๊ฐœ ์ธ๊ธฐ ์•ฑ์„ ํ•˜๋‚˜์”ฉ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋™์‹œ์— ์‹คํ–‰ ์ค‘์ธ LLM์€ ๊ฑฐ์˜ ๋А๋ ค์ง€์ง€ ์•Š์•˜๋‹ค.

์ฆ‰, ์ž์›์„ ๊ณตํ‰ํ•˜๊ฒŒ ๋‚˜๋ˆ  ๊ฐ–๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ™”๋ฉด ์•ฑ์€ ํฐ ์†ํ•ด๋ฅผ ๋ณด๋Š”๋ฐ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM์€ ๊ฑฐ์˜ ์†ํ•ด๋ฅผ ๋ณด์ง€ ์•Š๋Š” ๋น„๋Œ€์นญ ๊ฐ„์„ญ์ด ๋ฐœ์ƒํ•œ๋‹ค!

๋ณ‘๋ชฉ์€ ์—ฐ์‚ฐ๋Ÿ‰์ด ์•„๋‹ˆ๋ผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์ด๋‹ค

์ฒ˜์Œ์—๋Š” NPU๊ฐ€ LLM์„ ์‹คํ–‰ํ•˜๋ฉด์„œ CPU๋‚˜ GPU ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์„ ๋นผ์•—๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ €์ž๋“ค์˜ ๋ถ„์„ ๊ฒฐ๊ณผ, ์›์ธ์€ ๊ณต์œ  DRAM์˜ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ๊ฒฝ์Ÿ์ด๋‹ค.

๋ชจ๋ฐ”์ผ SoC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ CPU, GPU, NPU๊ฐ€ ๊ฐ™์€ DRAM์„ ์‚ฌ์šฉํ•˜๋Š” UMA, Unified Memory Architecture ๊ตฌ์กฐ๋‹ค.

plain
CPU โ”€โ” GPU โ”€โ”ผโ”€โ”€ ๊ณต์œ  interconnect โ”€โ”€ DRAM NPU โ”€โ”˜

๋”ฐ๋ผ์„œ NPU๊ฐ€ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ํŠธ๋ž˜ํ”ฝ์„ ๋งŽ์ด ๋ฐœ์ƒ์‹œํ‚ค๋ฉด, CPU์™€ GPU์˜ ํ™”๋ฉด ๋ Œ๋”๋ง์šฉ ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์ด ๋ฐ€๋ฆฐ๋‹ค.

๋‹จ์ˆœํžˆ LLM์„ ๋А๋ฆฌ๊ฒŒ ๋งŒ๋“ค๋ฉด ๋˜์ง€ ์•Š๋Š” ์ด์œ 

๊ทธ๋ ‡๋‹ค๋ฉด NPU์˜ ์†๋„๋ฅผ ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ์ž ๊น์”ฉ ์‰ฌ๊ฒŒ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‹ค์ œ ๋ชจ๋ฐ”์ผ SoC์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ์„ ๋น ๋ฅด๊ฒŒ ๊ฐ์ง€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค
    • NPU๊ฐ€ ์ •ํ™•ํžˆ ์–ผ๋งˆ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์„ ์“ฐ๋Š”์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํ•˜๋“œ์›จ์–ด ์นด์šดํ„ฐ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค.
    • ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ง์ ‘ ์ธก์ •ํ•˜๋ ค ํ•˜๋ฉด ์ธก์ • ์ž์ฒด๊ฐ€ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ง„๋‹ค.
  • LLM ์‹คํ–‰์„ ์ž์ฃผ ์ค‘๋‹จํ•˜๊ธฐ ์–ด๋ ต๋‹ค
    • ๋ชจ๋ฐ”์ผ NPU๋Š” ํšจ์œจ์„ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ static computation graph๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    • ๊ทธ๋ž˜ํ”„๊ฐ€ ํ•œ๋ฒˆ ์‹œ์ž‘๋˜๋ฉด ๋ณดํ†ต ๋๋‚  ๋•Œ๊นŒ์ง€ ์ค‘๋‹จํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ํ™”๋ฉด ๋ Œ๋”๋ง์ด ๊ฐ‘์ž๊ธฐ ๋ฐ”๋น ์ ธ๋„ ์ฆ‰์‹œ ๋ฉˆ์ถ”๊ธฐ ์–ด๋ ต๋‹ค.
  • ๊ธฐ์กด throttling์€ ๋น„ํšจ์œจ์ ์ด๋‹ค
    • NPU ์ฃผํŒŒ์ˆ˜๋ฅผ ๋‚ฎ์ถ”๊ฑฐ๋‚˜ ์ผ์ • ์‹œ๊ฐ„ sleep์‹œํ‚ค๋Š” ๋ฐฉ์‹์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜๋Š” ์žˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ๊ทธ๋™์•ˆ LLM ์ถ”๋ก ๋„ ๊ฑฐ์˜ ์ง„ํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ™”๋ฉด ์„ฑ๋Šฅ์„ ์ง€ํ‚ค๋ ค๋ฉด LLM ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํฌ์ƒํ•ด์•ผ ํ•˜๋Š” ๋‹จ์ˆœํ•œ trade-off

Markdown Image
๊ธฐ์กด ๋ฐฉ๋ฒ•๋“ค์€ ๋ณดํ†ต LLM์ด ๋น ๋ฅด๋ฉด ํ™”๋ฉด์ด ๋งŽ์ด ๋Š๊ธฐ๊ฑฐ๋‚˜ ํ™”๋ฉด์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋งŒ๋“ค๋ฉด LLM์ด ๋А๋ ค์ง€๋Š” trade-off
โ†’ SERENO๋Š” ๋†’์€ LLM ์ฒ˜๋ฆฌ๋Ÿ‰ + ๋‚ฎ์€ ํ™”๋ฉด ๋ฒ„๋ฒ…์ž„์œผ๋กœ ๊ธฐ์กด์˜ Pareto frontier ์ž์ฒด๋ฅผ ๊ฐœ์„ ํ–ˆ๋‹ค.

Background

Interference and Analysis

3.1 Quantifying Interference

๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM์ด foreground ์•ฑ์— ์–ผ๋งˆ๋‚˜ ํฐ ๊ฐ„์„ญ์„ ์ผ์œผํ‚ค๋Š”๊ฐ€?

LLM๊ณผ ์•ฑ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ฉด ์•ฑ์˜ ํ™”๋ฉด ํ’ˆ์งˆ๊ณผ CPUยทGPU ์„ฑ๋Šฅ์€ ํฌ๊ฒŒ ๋–จ์–ด์ง€์ง€๋งŒ, ์ •์ž‘ LLM ์ถ”๋ก  ์†๋„๋Š” ๊ฑฐ์˜ ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
์‹คํ—˜ ์„ธํŒ…
  • ์Šค๋งˆํŠธํฐ: OnePlus 13
  • SoC: Snapdragon 8 Elite
  • LLM: Llama-3.1-8B, W4A16 ์–‘์žํ™”
  • ์ถ”๋ก  ํ”„๋ ˆ์ž„์›Œํฌ: PowerServe
  • foreground workload: ์ธ๊ธฐ ์•ฑ 25๊ฐœ
  • ๊ฐ ์‹คํ–‰ ์‹œ๊ฐ„: ์•ฝ 30์ดˆ
  • ์‚ฌ์šฉ์ž ๋™์ž‘: ๊ณ„์† ํ™”๋ฉด์„ ์Šค์™€์ดํ”„
  • LLM workload:
    • prefill 1,024ํ† ํฐ
    • decode 256ํ† ํฐ
์ธก์ • ๋‚ด์šฉ

Foreground ์‚ฌ์šฉ์ž ๊ฒฝํ—˜

  • Jank rate: ๋ฒ„๋ฒ…์ด๊ฑฐ๋‚˜ ๋น„์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋œ ํ”„๋ ˆ์ž„์˜ ๋น„์œจ
  • Slow rendering rate: ๋ Œ๋”๋ง์ด ๋Šฆ์–ด Vsync deadline์„ ๋†“์นœ ํ”„๋ ˆ์ž„์˜ ๋น„์œจ

์‹œ์Šคํ…œ ์ตœ๊ณ  ์„ฑ๋Šฅ: LLM ์‹คํ–‰ ์ค‘์— CPU์™€ GPU benchmark๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋А๋ ค์ง€๋Š”๊ฐ€?

  • Geekbench 6 CPU
  • Geekbench OpenCL/Vulkan
  • 3DMark GPU benchmarks

๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM ์„ฑ๋Šฅ: ๋™์‹œ์— LLM ์ž์‹ ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๋„ ์ธก์ •

  • Prefill throughput
  • Decode throughput
Markdown Image
์•ฑ์„ ๋‹จ๋…์œผ๋กœ ์‹คํ–‰ํ•œ ์ƒํƒœ๋ฅผ Native baseline = 1.0

๊ฒฐ๊ณผ

  • foreground ์•ฑ์˜ ํ™”๋ฉด์ด ํฌ๊ฒŒ ๋ฒ„๋ฒ…์ž„
    • 25๊ฐœ ์•ฑ ์ „์ฒด๋ฅผ ํ•ฉ์นœ aggregate jank rate๋Š” 153% ์ฆ๊ฐ€ (2.53๋ฐฐ)
    • Discord๋Š” LLM๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ–ˆ์„ ๋•Œ Native ๋Œ€๋น„ ๊ฑฐ์˜ 18๋ฐฐ์˜ jank rate
  • ๊ฐ€๋ฒผ์šด ์•ฑ๋„ ํฐ ํ”ผํ•ด๋ฅผ ๋ณธ๋‹ค
    • ์•ฑ ์ž์ฒด์˜ ์—ฐ์‚ฐ๋Ÿ‰์ด ์ž‘๋”๋ผ๋„ ํ™”๋ฉด ๋ Œ๋”๋ง deadline์— ๋ฏผ๊ฐํ•˜๋ฉด LLM์˜ ์ž์› ๊ฐ„์„ญ์„ ํฌ๊ฒŒ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Discord์ฒ˜๋Ÿผ Native ์ƒํƒœ์—์„œ ์ž˜ ์ตœ์ ํ™”๋œ ์•ฑ์ด ์˜คํžˆ๋ ค normalized jank์—์„œ ๋งค์šฐ ํฐ ์ฆ๊ฐ€๋ฅผ ๋ณด์ธ ์ด์œ ๋„ ์ด์™€ ์—ฐ๊ฒฐ๋œ๋‹ค.
  • CPUยทGPU ์ตœ๊ณ  ์„ฑ๋Šฅ๋„ ํฌ๊ฒŒ ๋–จ์–ด์ง„๋‹ค (์˜ค๋ฅธ์ชฝ figure)
    • Native ์ƒํƒœ๋ฅผ 1.0์œผ๋กœ ๋†“์•˜์„ ๋•Œ ๋Œ€๋ถ€๋ถ„ ์•ฝ 0.5~0.6 ์ˆ˜์ค€๊นŒ์ง€ ๋–จ์–ด์ง„๋‹ค.
    • ์ตœ์‹  Snapdragon 8 Elite๊ฐ€ ์‹ค์งˆ์ ์œผ๋กœ 2~3๋…„ ์ „ ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค!
  • ๊ทธ๋Ÿฐ๋ฐ LLM์€ ๊ฑฐ์˜ ๋А๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค
    • Prefill throughput: 1.01% ๊ฐ์†Œ
    • Decode throughput: 1.64% ๊ฐ์†Œ
  • systemic priority inversion
    • ๋‘ ์ž‘์—…์ด ์ž์›์„ ๊ณตํ‰ํ•˜๊ฒŒ ๋‚˜๋ˆ  ๊ฐ€์ง€๋Š” ์ƒํ™ฉ์ด ์•„๋‹ˆ๋‹ค. (asymmetric interference)
    • ์‹ค์ œ๋กœ ๋” ๊ธด๊ธ‰ํ•œ UI๊ฐ€ ๋ฐ€๋ฆฌ๊ณ , ๋œ ๊ธด๊ธ‰ํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM์ด ์ž์›์„ ์šฐ์„ ์ ์œผ๋กœ ๊ณต๊ธ‰๋ฐ›๋Š” ์ƒํ™ฉ์ด๋‹ค.
    • ์™œ ํ•˜ํ•„ NPU๊ฐ€ ์ด๊ธฐ๋Š”๊ฐ€? โ†’ 3.3์—์„œ ๊ณ„์†

3.2 Physical Attribution: Bandwidth

๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM ๋•Œ๋ฌธ์— ์•ฑ์ด ๋А๋ ค์ง€๋Š” ์›์ธ ํ™•์ธ

Markdown Image

1. Compute ์ง€ํ‘œ: ๊ฑฐ์˜ ๋ณ€ํ™” ์—†์Œ

  • IPC, CPU utilization, GPU utilization์€ ๋Œ€๋ถ€๋ถ„ 1.0 ๊ทผ์ฒ˜๋‹ค.
  • ์ฆ‰, LLM์ด NPU์—์„œ ์‹คํ–‰๋œ๋‹ค๊ณ  ํ•ด์„œ CPU๋‚˜ GPU์˜ ์—ฐ์‚ฐ ์ฝ”์–ด๊ฐ€ ๊ฝ‰ ์ฐจ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
  • ์ฃผํŒŒ์ˆ˜(core frequency)๋„ ๋น„์ •์ƒ์ ์œผ๋กœ ๋–จ์–ด์ง€์ง€ ์•Š์•„ ๋ฐœ์—ด์— ์˜ํ•œ throttling๋„ ์ฃผ์š” ์›์ธ์ด ์•„๋‹ˆ๋‹ค. (๊ทธ๋ž˜ํ”„์—๋Š” ์—†๊ณ  ์„ค๋ช…์œผ๋กœ ๋”ฐ๋กœ ์ธก์ •ํ–ˆ๋‹ค๊ณ  ํ•จ.

2. Cache ์ง€ํ‘œ: ๋šœ๋ ทํ•œ ์•…ํ™” ์—†์Œ

  • LLC miss, L2 cache miss, TLB miss ์—ญ์‹œ Native์™€ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค.
  • NPU๊ฐ€ ์บ์‹œ๋ฅผ ์˜ค์—ผ์‹œ์ผœ CPU/GPU ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” cache contention๋„ ํ•ต์‹ฌ ์›์ธ์€ ์•„๋‹ˆ๋‹ค.

3. Unified Memory ์ง€ํ‘œ: 3~4๋ฐฐ ์•…ํ™”

  • CPU memory stall cycles, LLC miss latency, GPU memory stall
  • CPU์™€ GPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”์ฒญํ•œ ๋’ค ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ๋‹ค๋Š” ๋œป์ด๋‹ค.
Foreground ์•ฑ์ด ๋А๋ ค์ง€๋Š” ์›์ธ์€ ์—ฐ์‚ฐ ์ฝ”์–ด๋‚˜ ์บ์‹œ ๋ถ€์กฑ์ด ์•„๋‹ˆ๋ผ, NPU๊ฐ€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์„ ๊ณผ๋„ํ•˜๊ฒŒ ์ฐจ์ง€ํ•ด CPU์™€ GPU์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์ง€์—ฐ์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

3.3 Architectural Root Cause Analysis

์™œ ๋ชจ๋ฐ”์ผ ์‹œ์Šคํ…œ์ด NPU์˜ ๊ณผ๋„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ œ์–ดํ•˜์ง€ ๋ชปํ•˜๋Š”๊ฐ€?

Markdown Image

1. OS๊ฐ€ NPU ํŠธ๋ž˜ํ”ฝ์„ ์ œ๋Œ€๋กœ ๋ณด๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์—†๋‹ค

  • CPU์˜ ๋ฉ”๋ชจ๋ฆฌ stall์€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์ง€๋งŒ, NPU ํŠธ๋ž˜ํ”ฝ์€ ๊ธฐ์กด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋น ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • CPU์—๋Š” MPAM ๊ฐ™์€ ๋Œ€์—ญํญ ๋ถ„๋ฐฐ ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ NPU์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์•„, ํ˜ผ์žก์„ ๋ฐœ๊ฒฌํ•˜๋”๋ผ๋„ NPU์— ๋Œ€์—ญํญ ์ œํ•œ์„ ๊ฑธ๊ธฐ ์–ด๋ ต๋‹ค.

2. ํ•˜๋“œ์›จ์–ด๊ฐ€ NPU ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์„ ์šฐ์„  ์ฒ˜๋ฆฌํ•œ๋‹ค

  • NPU๋Š” ์ „์šฉ์— ๊ฐ€๊นŒ์šด ๊ณ ์šฐ์„ ์ˆœ์œ„ ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ™”๋ฉด ์ถœ๋ ฅ์ฒ˜๋Ÿผ ๊ธด๊ธ‰ํ•œ ์ž‘์—…๊ณผ ๋น„์Šทํ•œ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋ฐ˜๋ฉด CPU์™€ GPU๋Š” ๋Œ€์—ญํญยท๋ฐœ์—ด ์ •์ฑ…์˜ ์ œ์•ฝ์„ ๋ฐ›๋Š”๋‹ค.
  • ๋˜ํ•œ UI๋Š” 120Hz ๊ธฐ์ค€ ์•ฝ 8.3ms ์•ˆ์— ์ฒ˜๋ฆฌ๋ผ์•ผ ํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ์ œ์–ด๊ธฐ๊ฐ€ ๋ฐ˜์‘ํ•˜๋Š” ๋ฐ ์•ฝ 64ms๊ฐ€ ๊ฑธ๋ ค ์งง์€ ๋ Œ๋”๋ง ๊ฐ„์„ญ์„ ๋ง‰๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋А๋ฆฌ๋‹ค. Table 1์€ ์ด๋Ÿฐ CPU/GPU์™€ NPU์˜ ์ฐจ์ด๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.

3. ์›๋ž˜ ์นด๋ฉ”๋ผ์™€ ์˜์ƒ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์„ค๊ณ„๋‹ค

  • ๋ชจ๋ฐ”์ผ ์นฉ์€ ์›๋ž˜ NPU๋‚˜ ISP ๊ฐ™์€ ๊ฐ€์†๊ธฐ๋ฅผ ์นด๋ฉ”๋ผยท์˜์ƒ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉํ–ˆ๋‹ค. 4K ์˜์ƒ ์ดฌ์˜์€ ํ”„๋ ˆ์ž„ ํ•˜๋‚˜๋ผ๋„ ๋Šฆ์œผ๋ฉด ์˜์ƒ์ด ์†์ƒ๋˜๋ฏ€๋กœ, ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ด ๊ฐ€์†๊ธฐ๋“ค์˜ ๋ฉ”๋ชจ๋ฆฌ ์š”์ฒญ์„ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋๋‹ค.
  • ๋ฌธ์ œ๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ธด๊ธ‰ํ•œ ์นด๋ฉ”๋ผ ์ž‘์—…๊ณผ ์ค‘์š”๋„๊ฐ€ ๋‚ฎ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM์„ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ LLM๋„ ์นด๋ฉ”๋ผ์™€ ๊ฐ™์€ ์šฐ์„ ๊ถŒ์„ ๋ฌผ๋ ค๋ฐ›์•„ UI๋ฅผ ๋ฐ€์–ด๋‚ธ๋‹ค.
NPU๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์šฐ์„ ๊ถŒ์€ ๋†’์€๋ฐ, OS๊ฐ€ ๊ด€์ฐฐํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜๋‹จ์€ ๋ถ€์กฑํ•˜๋‹ค.

์ด ๊ตฌ์กฐ๋ฅผ ์ƒ์šฉ ์Šค๋งˆํŠธํฐ์—์„œ ๋ฐ”๊พธ๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, ์ €์ž๋“ค์€ ํ•˜๋“œ์›จ์–ด ์ •์ฑ…์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  LLM ์Šค์Šค๋กœ ๋Œ€์—ญํญ์„ ์–‘๋ณดํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ฒฐ๋ก ๋‚ธ๋‹ค.

Markdown Image
Markdown Image

SERENO Design

์„ค๊ณ„ ๋ชฉํ‘œ
  • Foreground Protection: ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์กฐ์ž‘ํ•˜๋Š” ์ˆœ๊ฐ„์—๋Š” LLM์˜ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ์‚ฌ์šฉ์„ ์ค„์—ฌ, ํ™”๋ฉด ๋ถ€๋“œ๋Ÿฌ์›€์„ Native์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€ํ•œ๋‹ค.
  • Efficient Yielding: ๋‹จ์ˆœํžˆ LLM์„ ์˜ค๋ž˜ sleep์‹œํ‚ค์ง€ ์•Š๊ณ , ๊ฐ€๋Šฅํ•œ ํ•œ ์ถ”๋ก ์„ ๊ณ„์† ์ง„ํ–‰ํ•ด background throughput์„ ๋ณด์กดํ•œ๋‹ค.
์„ค๊ณ„ ์ œ์•ฝ
  • ํ•˜๋“œ์›จ์–ด ์ˆ˜์ • ๋ถˆ๊ฐ€: SoC์˜ NPU ์šฐ์„ ์ˆœ์œ„๋‚˜ interconnect ์ •์ฑ…์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค.
  • User-space ๊ตฌํ˜„: ์ „์šฉ ์ปค๋„์ด๋‚˜ NPU driver ์ˆ˜์ •์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Black-box NPU ๋Œ€์‘: NPU ๊ทธ๋ž˜ํ”„๋Š” staticํ•˜๊ณ , ํ•œ๋ฒˆ ์‹คํ–‰ํ•˜๋ฉด ์ค‘๊ฐ„์— ๋Š๊ธฐ ์–ด๋ ค์šด atomic ์‹คํ–‰ ๋‹จ์œ„๋‹ค.
  • ๊ฐ ๊ทธ๋ž˜ํ”„์˜ batch size๋„ exportํ•  ๋•Œ ๋ฏธ๋ฆฌ ๊ณ ์ •ํ•ด์•ผ ํ•œ๋‹ค.
Markdown Image

5.1 Elastic Speculative Decoding

1. Preemptible Draft Execution

  • ๊ธฐ์กด์—๋Š” draft model๋„ ํ•˜๋‚˜์˜ ํฐ static graph๋กœ ์‹คํ–‰๋ผ ์ค‘๊ฐ„์— ๋ฉˆ์ถ”๊ธฐ ์–ด๋ ต๋‹ค.
  • SERENO๋Š” draft model์„ Transformer layer ๋‹จ์œ„์˜ ์ž‘์€ subgraph๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค.
  • ๊ฐ subgraph๋Š” 1ms ๋ฏธ๋งŒ์œผ๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ, subgraph ๊ฒฝ๊ณ„๋งˆ๋‹ค ์ค‘๋‹จ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
Markdown Image
plain
Draft layer โ†’ Draft layer โ†’ Draft layer โ†‘ ์—ฌ๊ธฐ์„œ ์ฆ‰์‹œ ์ค‘๋‹จ ๊ฐ€๋Šฅ
  • ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ์ด ๊ฐ์ง€๋˜๋ฉด ๋‚จ์€ draft ์ž‘์—…์„ ๋ฒ„๋ฆฌ๊ณ , ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ํ›„๋ณด๋งŒ ๊ฐ€์ง€๊ณ  verification์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  • Draft ๊ฒฐ๊ณผ๋Š” ์•„์ง tentativeํ•œ ํ›„๋ณด๋ผ์„œ ๋ฒ„๋ ค๋„ ์ด๋ฏธ ํ™•์ •๋œ ํ† ํฐ์ด๋‚˜ ์ตœ์ข… ์ •ํ™•์„ฑ์€ ์†์ƒ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋˜ํ•œ dynamic operator๋กœ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  static graph๋ฅผ ์œ ์ง€ํ•˜๋ฏ€๋กœ NPU ํšจ์œจ๋„ ๋ณด์กดํ•œ๋‹ค.

2. N-gram Filling

  • Draft๋ฅผ ์ผ์ฐ ์ค‘๋‹จํ•˜๋ฉด verification batch๋ฅผ ์ฑ„์šธ ํ›„๋ณด ํ† ํฐ์ด ๋ถ€์กฑํ•ด์ ธ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • SERENO๋Š” ๋นˆ ์ž๋ฆฌ๋ฅผ ์ €๋น„์šฉ N-gram ํ›„๋ณด๋กœ ์ฑ„์šด๋‹ค.
Markdown Image
plain
Verification batch ํฌ๊ธฐ: 9 Neural draft ํ›„๋ณด: [A][B][C] N-gram ํ›„๋ณด ์ถ”๊ฐ€: [D][E][F][G][H][I]
  • N-gram ํ›„๋ณด๋„ target model์ด ๋ชจ๋‘ ๊ฒ€์ฆํ•˜๋ฏ€๋กœ, ์ž˜๋ชป๋œ ํ›„๋ณด๋Š” ๊ฑฐ์ ˆ๋˜๊ณ  ์ถœ๋ ฅ ์ •ํ™•์„ฑ์—๋Š” ์˜ํ–ฅ์ด ์—†๋‹ค.
  • ํ›„๋ณด ํ’ˆ์งˆ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
    • ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•œ ์ถœ๋ ฅ: ๋†’์€ ์‹ ๋ขฐ๋„
    • prompt์— ๋“ฑ์žฅํ•œ ํ† ํฐ
    • ์ด์ „์— ๊ฑฐ์ ˆ๋œ draft sequence: ๋‚ฎ์€ ๊ฐ€์ค‘์น˜๋กœ ์žฌํ™œ์šฉ
  • ์ž์ฃผ ํ‹€๋ฆฌ๋Š” ํŒจํ„ด์€ ์ œ๊ฑฐํ•˜๊ณ , ์งง์€ 2-gram๋ณด๋‹ค ๊ธด ๋ฌธ๋งฅ์ด ์ผ์น˜ํ•œ ํ›„๋ณด์— ๋” ๋†’์€ ๊ฐ€์ค‘์น˜๋ฅผ ์ค€๋‹ค.
  • ์ฆ‰, N-gram Filling์€ ๋Œ€์—ญํญ์„ ์ค„์ด๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ธฐ๋ณด๋‹ค draft ์ค‘๋‹จ์œผ๋กœ ์žƒ์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ณด์ƒํ•˜๋Š” ๊ธฐ๋Šฅ

3. Selective Batching

SERENO๋Š” batch ํฌ๊ธฐ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ verification graph๋ฅผ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•ด ๋‘”๋‹ค.

plain
Batch 8 Batch 16 Batch 32 ...
  • ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ ์ •๋„์— ๋”ฐ๋ผ ์ ์ ˆํ•œ graph๋ฅผ ์„ ํƒํ•œ๋‹ค.
    • ๊ฒฝ์Ÿ์ด ์ ์Œ โ†’ ์ž‘์€ batch โ†’ ํ›„๋ณด๋ฅผ ๋œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ๋น ๋ฅด๊ฒŒ verification
    • ๊ฒฝ์Ÿ์ด ์‹ฌํ•จ โ†’ ํฐ batch โ†’ ํ•œ ๋ฒˆ์˜ target-model weight ์ฝ๊ธฐ๋กœ ๋” ๋งŽ์€ ํ›„๋ณด๋ฅผ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•ด ํ‰๊ท  ๋Œ€์—ญํญ ์••๋ ฅ์„ ๋‚ฎ์ถค
  • ๋…ผ๋ฌธ์—์„œ batch 1์˜ ๋Œ€์—ญํญ ์š”๊ตฌ๋Ÿ‰์„ 1.0์œผ๋กœ ๋‘๋ฉด, batch๊ฐ€ ์ปค์งˆ์ˆ˜๋ก 8/16/32์—์„œ ๊ฐ๊ฐ ์•ฝ 0.82/0.79/0.74๋กœ ๊ฐ์†Œํ•œ๋‹ค.
  • ๋‹ค๋งŒ ํฐ batch๊ฐ€ ํ•ญ์ƒ ๋น ๋ฅธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ํ›„๋ณด๋ฅผ ์ค€๋น„ํ•ด์•ผ ํ•˜๊ณ , ํ•œ๋ฒˆ ์‹œ์ž‘ํ•œ verification graph๊ฐ€ ๋” ์˜ค๋ž˜ ์‹คํ–‰๋˜๋Š” ๊ธด atomic burst๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
draft๋ฅผ ๋น ๋ฅด๊ฒŒ ๋Š์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ , ๋Š์–ด์„œ ๋ถ€์กฑํ•ด์ง„ ํ›„๋ณด๋Š” N-gram์œผ๋กœ ๋ณด์ถฉํ•˜๋ฉฐ, verification batch ํฌ๊ธฐ๋ฅผ ๋ฐ”๊ฟ” ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ๊ณผ ์ง€์—ฐ์„ ์กฐ์ ˆํ•˜๋Š” ์„ค๊ณ„

5.2 Endogenous Contention Sensing

๋ณ„๋„์˜ ํ•˜๋“œ์›จ์–ด ์นด์šดํ„ฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์ธก์ • ํ”„๋กœ๊ทธ๋žจ ์—†์ด, LLM ์ž์‹ ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ์„ ๊ฐ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•

Draft model์˜ subgraph๋„ NPU SRAM๊ณผ DRAM ์‚ฌ์ด์—์„œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฏ€๋กœ, ๊ฒฝ์Ÿ์ด ๋ฐœ์ƒํ•˜๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋А๋ ค์ง„๋‹ค.

plain
Foreground์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์ฆ๊ฐ€ โ†“ DRAM/interconnect ํ˜ผ์žก โ†“ Draft subgraph ์‹คํ–‰ ์‹œ๊ฐ„ ์ฆ๊ฐ€ โ†“ ๋ฉ”๋ชจ๋ฆฌ contention์œผ๋กœ ํŒ๋‹จ

๋ณ„๋„์˜ probe๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์›๋ž˜ ์ˆ˜ํ–‰ํ•˜๋˜ LLM ์—ฐ์‚ฐ ์ž์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์ง€์—ฐ ์ธก์ •๊ธฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜์„œ endogenous, ์ฆ‰ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์–ป๋Š” ์‹ ํ˜ธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์™œ Draft subgraph๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ์‹คํ–‰ ์‹œ๊ฐ„์ด 1ms๋ณด๋‹ค ์งง์œผ๋ฉฐ, ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ์„ ๋น ๋ฅด๊ฒŒ ๊ด€์ฐฐํ•˜๊ธฐ ์ข‹๋‹ค. ๋ณ„๋„ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์•„ ์ธก์ • ์˜ค๋ฒ„ํ—ค๋“œ๋„ ๊ฑฐ์˜ ์—†๋‹ค.

Calibration

๋ฌธ์ œ๋Š” Transformer layer๋งˆ๋‹ค ์›๋ž˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋‹ค๋ฅด๋‹ค๋Š” ์ ์ด๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์˜ graph fusion, ๋ฉ”๋ชจ๋ฆฌ ์ •๋ ฌ, tensor tiling ์ฐจ์ด ๋•Œ๋ฌธ์— subgraph๋ณ„ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ตœ๋Œ€ 37% ์ •๋„ ์ฐจ์ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ SERENO๋Š” ๊ฒฝ์Ÿ์ด ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ๊ฐ subgraph์˜ ์ •์ƒ ์‹คํ–‰ ์‹œ๊ฐ„ ()์„ ํ•œ ๋ฒˆ ๋ฏธ๋ฆฌ ์ธก์ •ํ•œ๋‹ค.

์‹คํ–‰ ์ค‘์—๋Š” ๋‹ค์Œ Contention Score๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํ‰์†Œ 0.8ms ๊ฑธ๋ฆฌ๋˜ subgraph๊ฐ€ 1.0ms ๊ฑธ๋ ธ๋‹ค๋ฉด,

์ฆ‰, ํ‰์†Œ๋ณด๋‹ค 25% ๋А๋ ค์กŒ์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ์ด ์ฆ๊ฐ€ํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.

์˜ˆ์ธก์ด ์•„๋‹ˆ๋ผ ๋ฐ˜์‘ํ˜• ๊ฐ์ง€

SERENO๋Š” ์‚ฌ์šฉ์ž์˜ ๋‹ค์Œ ํ„ฐ์น˜๋‚˜ ์•ฑ ๋ Œ๋”๋ง์„ ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์ง€ ์•Š๋Š”๋‹ค. ์•ฑ๋งˆ๋‹ค ๋™์ž‘์ด ๋‹ค๋ฅด๊ณ  ์‚ฌ์šฉ์ž ์ž…๋ ฅ์€ ๋ถˆ๊ทœ์น™ํ•ด์„œ ์˜ˆ์ธก ๋ชจ๋ธ์ด ๋†“์น˜๊ฑฐ๋‚˜, ์ง€๋‚˜์น˜๊ฒŒ ๋ณด์ˆ˜์ ์œผ๋กœ LLM์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋Œ€์‹  subgraph ์‹คํ–‰ ์‹œ๊ฐ„์ด ์‹ค์ œ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„์„ sub-millisecond ๋‹จ์œ„๋กœ ๊ด€์ฐฐํ•˜๊ณ  ๋ฐ”๋กœ ๋ฐ˜์‘ํ•œ๋‹ค.

์‹ ๋ขฐ์„ฑ

์ด Contention Score๋Š” ์‹ค์ œ CPU๊ฐ€ ๊ฒฝํ—˜ํ•œ DRAM ์ง€์—ฐ ์ง€ํ‘œ์ธ Stall Cycles per LLC Miss์™€ ์•ฝ (R=0.86)์˜ ๋†’์€ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ณด์˜€๋‹ค.

์ •๋ฆฌํ•˜๋ฉด, SERENO๋Š” โ€œ๋‚ด draft layer๊ฐ€ ํ‰์†Œ๋ณด๋‹ค ๋А๋ ค์กŒ๋Š”๊ฐ€?โ€๋ฅผ ๊ด€์ฐฐํ•ด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ˜ผ์žกํ•œ์ง€๋ฅผ ์ถ”์ •ํ•œ๋‹ค. ๋ณ„๋„ ํ•˜๋“œ์›จ์–ด ์ง€์› ์—†์ด ๋น ๋ฅด๊ณ  ๊ฑฐ์˜ ๊ณต์งœ๋กœ contention์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค.

5.3 Bandwidth Controller

5.2์—์„œ ๊ณ„์‚ฐํ•œ Contention Score๋ฅผ ๋ณด๊ณ , LLM์ด ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์„ ์–ผ๋งˆ๋‚˜ ์–‘๋ณดํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ถ€๋ถ„
  1. Draft Preemption โ€” ์ฆ‰๊ฐ์ ์ธ ๋Œ€์‘

    Draft๋Š” batch 1๋กœ ์‹คํ–‰๋ผ ๋ฉ”๋ชจ๋ฆฌ ์ง‘์•ฝ๋„๊ฐ€ ๊ฐ€์žฅ ๋†’๋‹ค. ๊ฒฝ์Ÿ์ด ๊ฐ์ง€๋˜๋ฉด ๋‚จ์€ draft๋ฅผ ๋ฐ”๋กœ ์ค‘๋‹จํ•˜๊ณ  verification์œผ๋กœ ๋„˜์–ด๊ฐ€ ๋Œ€์—ญํญ์„ ์ฆ‰์‹œ ๋‚ด๋†“๋Š”๋‹ค.

  1. Selective Batching โ€” ํฐ ๋‹จ์œ„ ์กฐ์ ˆ

    Verification์—์„œ ๊ฒฝ์Ÿ์ด ์•ฝํ•˜๋ฉด ์ž‘์€ batch๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฒฝ์Ÿ์ด ์‹ฌํ•˜๋ฉด ํ‰๊ท  ๋Œ€์—ญํญ ์š”๊ตฌ๋Ÿ‰์ด ๋‚ฎ์€ ํฐ batch graph๋ฅผ ์„ ํƒํ•œ๋‹ค.

  1. Micro-sleeps โ€” ๋ฏธ์„ธ ์กฐ์ ˆ

    Verification subgraph ์‚ฌ์ด์— 1~2ms ์ •๋„์˜ ์งง์€ sleep์„ ๋„ฃ์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ duty cycle์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋‚ฎ์ถ˜๋‹ค. ์‹คํ–‰ ์ค‘์ธ NPU graph ๋‚ด๋ถ€๋ฅผ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

PI Controller

์–ผ๋งˆ๋‚˜ ๊ฐ•ํ•˜๊ฒŒ ์–‘๋ณดํ• ์ง€๋Š” PI controller๊ฐ€ ๊ฒฐ์ •ํ•œ๋‹ค.

  • ์ธก์ •ํ•œ contention์ด ๋ชฉํ‘œ๋ณด๋‹ค ๋†’์œผ๋ฉด ์–‘๋ณด ๊ฐ•๋„๋ฅผ ํ‚ค์šด๋‹ค.
  • P ํ•ญ์€ ํ˜„์žฌ ํ˜ผ์žก์— ์ฆ‰์‹œ ๋ฐ˜์‘ํ•œ๋‹ค.
  • I ํ•ญ์€ ํ˜ผ์žก์ด ๊ณ„์† ๋ˆ„์ ๋  ๋•Œ ์ œ์–ด ๊ฐ•๋„๋ฅผ ๋†’์ธ๋‹ค.

Derivative ํ•ญ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋ฐ”์ผ ์‹คํ–‰ ์‹œ๊ฐ„์—๋Š” scheduling jitter ๊ฐ™์€ ์žก์Œ์ด ์žˆ์–ด, D ํ•ญ์ด ์ด๋ฅผ ์ฆํญํ•˜๋ฉด ์ œ์–ด๊ฐ€ ํ”๋“ค๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Draft ๋‹จ๊ณ„์—์„œ๋Š” ์ž‘์€ ํ˜ผ์žก๋งŒ ๊ฐ์ง€๋ผ๋„ ๋น ๋ฅด๊ฒŒ preemptionํ•œ๋‹ค. Verification ๋‹จ๊ณ„์—์„œ๋Š” PI ์ถœ๋ ฅ์— ๋”ฐ๋ผ batch ํฌ๊ธฐ์™€ micro-sleep ์‹œ๊ฐ„์„ ์ ์ง„์ ์œผ๋กœ ์กฐ์ ˆํ•œ๋‹ค. ์ผ์‹œ์ ์ธ ์ง€์—ฐ ํ•œ ๋ฒˆ์— ๊ณผ๋ฏผ ๋ฐ˜์‘ํ•˜์ง€ ์•Š๋„๋ก, ์—ฌ๋Ÿฌ ๋ฒˆ ์—ฐ์†์œผ๋กœ ๊ธฐ์ค€์„ ๋„˜์—ˆ์„ ๋•Œ ์ค‘๋‹จํ•˜๋Š” hysteresis๋„ ์‚ฌ์šฉํ•œ๋‹ค.

LLM์ด ๊ตถ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ์žฅ์น˜

Foreground๋ฅผ ๊ณ„์† ์šฐ์„ ํ•˜๋ฉด LLM์ด ๊ฑฐ์˜ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ Token Bucket์œผ๋กœ ์ตœ์†Œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ณดํ˜ธํ•œ๋‹ค.

  • ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ถฉ๋ถ„ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ QoS ์ œ์–ด
  • ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋ถ€์กฑํ•ด์ง€๋ฉด contention ๊ธฐ์ค€์„ ์™„ํ™”ํ•ด ๋œ ์–‘๋ณด
  • ๊ณ„์† ๋ถ€์กฑํ•˜๋ฉด ์ž ์‹œ QoS ์ œ์–ด๋ฅผ ๋„๊ณ  ์ผ๋ฐ˜ speculative decoding์œผ๋กœ ๋ณต๊ท€

์ฆ‰, UI๋ฅผ ๋ณดํ˜ธํ•˜๋ฉด์„œ๋„ background LLM์ด ์™„์ „ํžˆ starvation๋˜๋Š” ๊ฒƒ์€ ๋ง‰๋Š”๋‹ค.

contention ์ •๋„๋ฅผ PI controller๋กœ ํŒ๋‹จํ•˜๊ณ , draft ์ค‘๋‹จยทbatch ๋ณ€๊ฒฝยท์งง์€ sleep์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์กฐํ•ฉํ•ด ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๋Œ€์—ญํญ์„ ์–‘๋ณดํ•˜๋Š” ๊ฒƒ

Evaluation

Implementation

SERENO๋Š” Snapdragon ์Šค๋งˆํŠธํฐ์˜ Qualcomm QNN SDK 2.39์™€ ์˜คํ”ˆ์†Œ์Šค ์ถ”๋ก  ์—”์ง„ PowerServe ์œ„์— ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ „์ฒด ์ถ”๊ฐ€ ์ฝ”๋“œ๋Š” C++ ์•ฝ 6,400์ค„์ด๋‹ค.

  • Elastic Speculative Decoding: ์•ฝ 2,800์ค„
  • Bandwidth Controller: ์•ฝ 2,700์ค„
  • Contention Sensor: ์•ฝ 900์ค„

์นฉ๋งˆ๋‹ค PI controller์˜ ์ ์ ˆํ•œ ๊ฐ’์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, synthetic load๋ฅผ ์ด์šฉํ•ด ์ž๋™์œผ๋กœ ๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” calibration script๋„ ์ œ๊ณตํ•œ๋‹ค.

๋˜ํ•œ ๋‘ ๊ฐ€์ง€ ์‹คํ–‰ ์ •์ฑ…์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

  • Balanced Mode: ์ผ๋ฐ˜์ ์ธ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์šฉ. ํ™”๋ฉด ๋ถ€๋“œ๋Ÿฌ์›€๊ณผ LLM ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ท ํ˜• ์žˆ๊ฒŒ ๋ณดํ˜ธ
  • UI-First Mode: ๊ฒŒ์ž„์ฒ˜๋Ÿผ foreground๊ฐ€ ์ค‘์š”ํ•œ ์ƒํ™ฉ์šฉ. LLM ์†๋„๋ฅผ ๋” ํฌ์ƒํ•˜๋”๋ผ๋„ ํ™”๋ฉด ๊ฐ„์„ญ์„ ์ตœ์†Œํ™”

7.1 Experimental Setup

๊ตฌ๋ถ„์„ค์ •
์Šค๋งˆํŠธํฐ์ฃผ ์‹คํ—˜: OnePlus 13, Snapdragon 8 Elite / ์ถ”๊ฐ€ ๊ฒ€์ฆ: OnePlus 12, Snapdragon 8 Gen 3
๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐCPUยทGPUยทNPU๊ฐ€ 24GB LPDDR5X ํ†ตํ•ฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ 
Target modelLlama-3.1-8B-Instruct, W4A16
Draft modelSERENO์™€ Speculative์—์„œ Llama-3.2-1B-Instruct, W4A16 ์‚ฌ์šฉ
LLM ์ž…๋ ฅGSM8K์˜ ์„œ๋กœ ๋‹ค๋ฅธ prompt 15๊ฐœ
Foreground ์•ฑ์ด 30๊ฐœ: Tools, Social, Media, Gaming์˜ ๋„ค ๋ฒ”์ฃผ
์•ฑ ์กฐ์ž‘์ผ๋ฐ˜ ์•ฑ์€ ์•ฝ 1Hz๋กœ ์Šคํฌ๋กคยทํด๋ฆญ, ๊ฒŒ์ž„์€ ์•ฝ 2Hz๋กœ ์นด๋ฉ”๋ผ ํšŒ์ „ยท์ ํ”„ ๋“ฑ์„ ์ž๋™ ์žฌ์ƒ
์‹คํ—˜ ๋ฐฉ์‹์•ฑ 30๊ฐœ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์•ฑ ํ•˜๋‚˜ + ๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM ์กฐํ•ฉ์„ ๊ฐ๊ฐ ํ‰๊ฐ€
๋ฐ˜๋ณต ์ธก์ •Prompt๋ณ„ 1ํšŒ์”ฉ ์ด 15ํšŒ, ๊ฐ ์•ฝ 45์ดˆ. ์ตœ๋Œ“๊ฐ’ยท์ตœ์†Ÿ๊ฐ’ ๊ฐ 2๊ฐœ๋ฅผ ์ œ์™ธํ•˜๊ณ  ํ‰๊ท 
๊ธฐ๋ณธ ๋ถ€ํ•˜Continuous decoding์œผ๋กœ foreground์™€ ์ตœ์•…์˜ ์ค‘์ฒฉ ์ƒํ™ฉ์„ ๋งŒ๋“ค๊ณ , 7.2์—์„œ ๊ฐ„ํ—์  LLM ์‹คํ–‰๋„ ์ถ”๊ฐ€ ํ‰๊ฐ€
๋น„๊ต ๋Œ€์ƒ
๋ฒ”์ฃผ๋ฐฉ๋ฒ•
์ƒํ•œ์„ Native: LLM ์—†์ด foreground ์•ฑ๋งŒ ์‹คํ–‰
๊ธฐ์กด ํ”„๋ ˆ์ž„์›ŒํฌPowerServe, llama.cpp-CPU/GPU/NPU, MNN
๋‹จ์ˆœ ์ œ์–ด ์ „๋žตFreq-Limit, Chunk-Sleep, ์ผ๋ฐ˜ Speculative decoding
์ œ์•ˆ ๋ฐฉ์‹SERENO
ํ‰๊ฐ€ ์ง€ํ‘œ
๋Œ€์ƒ์ง€ํ‘œ
ํ™”๋ฉด ํ’ˆ์งˆJank rate, Slow rendering rate
์‹œ์Šคํ…œ ์„ฑ๋ŠฅGeekbench 6, 3DMark
LLM ์„ฑ๋ŠฅPrefill/decode throughput์™€ latency
ํ•˜๋“œ์›จ์–ด ๋ถ„์„Snapdragon Profiler์™€ Simpleperf์˜ ๋ฏธ์„ธ๊ตฌ์กฐ ์ง€ํ‘œ

7.2 End-to-End Effectiveness

Markdown Image

Comparison with SOTA frameworks (a), (b)

๋ฐฉ๋ฒ•Foreground QoSLLM ์„ฑ๋Šฅ
PowerServeNPU ๋Œ€์—ญํญ์„ ์ œ์–ดํ•˜์ง€ ์•Š์•„ jank๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€๋ณดํ†ต ์ˆ˜์ค€
llama.cpp GPU/NPU์—ฌ์ „ํžˆ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ฒฝ์Ÿ ๋ฐœ์ƒ์ผ๋ถ€ ๋ฐฉ์‹์€ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋‚ฎ์Œ
MNN๊ฐ„์„ญ์€ ์ค„์ง€๋งŒ LLM์ด ๋งค์šฐ ๋А๋ฆผํ‰๊ท  ์•ฝ 3.78 tokens/s
SERENONative์— ๊ฐ€๊นŒ์šด ํ™”๋ฉด ๋ถ€๋“œ๋Ÿฌ์›€๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰ ์œ ์ง€

Comparison with scheduling strategies (c), (d)

์ผ๋ฐ˜ speculative decoding์€ ์ฒ˜๋ฆฌ๋Ÿ‰์ด 19.84 tokens/s๋กœ ๊ฐ€์žฅ ๋น ๋ฅด์ง€๋งŒ, Social jank๊ฐ€ 15.38%๋กœ ๋†’๋‹ค.

SERENO๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰์„ 16.0 tokens/s๋กœ ์กฐ๊ธˆ ์–‘๋ณดํ•˜๋ฉด์„œ jank๋ฅผ 8.14%๊นŒ์ง€ ๋‚ฎ์ถ˜๋‹ค.

๋ฐ˜๋ฉด ๋‹จ์ˆœํ•œ ๋ฐฉ์‹์€ ์ข‹์ง€ ์•Š์•˜๋‹ค.

  • Freq-Limit: 6.74 tokens/s, jank 18.55%
  • Chunk-Sleep: ๋Œ€์—ญํญ์€ ์–‘๋ณดํ•˜์ง€๋งŒ sleep ์ค‘ ์ถ”๋ก  ์ง„ํ–‰์ด ์—†์–ด ๋น„ํšจ์œจ์ 

System peak performance

Gaming ์ƒํ™ฉ์—์„œ ์ œ์–ด๋˜์ง€ ์•Š์€ LLM ์ถ”๋ก ์€ CPUยทGPU benchmark ์„ฑ๋Šฅ์„ Native์˜ ์•ฝ 51%๊นŒ์ง€ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค.

Markdown Image
  • SERENO Balanced: ์•ฝ 73%๊นŒ์ง€ ํšŒ๋ณต, 10.56 tokens/s
  • SERENO UI-First: ์•ฝ 84%๊นŒ์ง€ ํšŒ๋ณต
  • GPU ์ ์ˆ˜๋Š” Native์˜ 92%๊นŒ์ง€ ํšŒ๋ณต

MNN๋„ foreground ์„ฑ๋Šฅ์€ ์ž˜ ๋ณดํ˜ธํ•˜์ง€๋งŒ ์ฒ˜๋ฆฌ๋Ÿ‰์ด 2.25 tokens/s์— ๋ถˆ๊ณผํ•˜๊ณ , SERENO UI-First๋Š” 5.25 tokens/s๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

Latency

Markdown Image

512-token prefill๊ณผ 128-token decode ์š”์ฒญ์—์„œ PowerServe: 11.25์ดˆ, SERENO: 10.21์ดˆ

SERENO์˜ prefill์€ ์ž‘์€ batch ๋•Œ๋ฌธ์— ๋А๋ฆฌ์ง€๋งŒ, speculative decoding์œผ๋กœ decode๊ฐ€ ๋นจ๋ผ์ ธ ์ „์ฒด latency๋Š” ์˜คํžˆ๋ ค 9% ๋‚ฎ๋‹ค.

Sporadic workload evaluation

์•Œ๋ฆผ ์š”์•ฝ์ด๋‚˜ ์Šค๋งˆํŠธ ๋‹ต์žฅ์ฒ˜๋Ÿผ LLM์ด ์ž ๊น์”ฉ ์‹คํ–‰๋˜๋Š” (Sporadic) ์ƒํ™ฉ๋„ ํ‰๊ฐ€ํ–ˆ๋‹ค.

Markdown Image

SERENO์˜ jank๋Š” ์ „์ฒด ๊ตฌ๊ฐ„์—์„œ 0.72~1.16%์˜€๊ณ , PowerServe์˜ 1.64~2.51%๋ณด๋‹ค ๋Œ€๋žต ์ ˆ๋ฐ˜ ์ˆ˜์ค€

7.3 Mechanism Analysis

SERENO์˜ ์„ผ์„œ์™€ controller๊ฐ€ ์‹ค์ œ๋กœ ์˜๋„๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธ

์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ๋ณ‘๋ชฉ์„ ์ค„์˜€๋Š”๊ฐ€?

Markdown Image

์ €์ž๋“ค์€ CPU๊ฐ€ ์ฒด๊ฐํ•˜๋Š” DRAM ์ง€์—ฐ์˜ proxy๋กœ CPLM(Stall Cycles per LLC Miss)์„ ์‚ฌ์šฉํ•œ๋‹ค.

๊ฐ’์ด ํด์ˆ˜๋ก LLC miss ํ›„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ ธ๋‹ค๋Š” ๋œป์ด๋‹ค.

SERENO๋Š” uncontrolled PowerServe๋ณด๋‹ค CPLM์„ 42% ๊ฐ์†Œ์‹œ์ผฐ๋‹ค. ์ฆ‰, ๋‹จ์ˆœํžˆ jank ์ง€ํ‘œ๋งŒ ์ข‹์•„์ง„ ๊ฒŒ ์•„๋‹ˆ๋ผ ์›์ธ์ธ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ํ˜ผ์žก ์ž์ฒด๋ฅผ ์‹ค์ œ๋กœ ์™„ํ™”ํ–ˆ๋‹ค.

Contention Score๊ฐ€ ๋ฏฟ์„ ๋งŒํ•œ๊ฐ€?

Markdown Image

Draft subgraph ์‹คํ–‰ ์‹œ๊ฐ„์œผ๋กœ ๊ณ„์‚ฐํ•œ Contention Score์™€ ์‹ค์ œ CPLM์„ ๋น„๊ตํ–ˆ๋‹ค.

  • ํ‘œ๋ณธ: ์•ฝ 125,060๊ฐœ
  • Pearson correlation: ()

์ฆ‰, draft ์‹คํ–‰์ด ํ‰์†Œ๋ณด๋‹ค ๋А๋ ค์ง€๋Š” ์ •๋„๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ stall๊ณผ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ๋‹ค. ๋ณ„๋„ ํ•˜๋“œ์›จ์–ด ์นด์šดํ„ฐ ์—†์ด๋„ ๋ฉ”๋ชจ๋ฆฌ ํ˜ผ์žก์„ ๊ฝค ์ •ํ™•ํžˆ ๊ฐ์ง€ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.

Controller๊ฐ€ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€?

Markdown Image

์ผ๋ฐ˜ workload์—์„œ๋Š” Draft๊ฐ€ ์ „์ฒด ์‹œ๊ฐ„์˜ ์•ฝ 35~40%๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.

๋ฐ˜๋ฉด ๊ฐ•ํ•œ UI-First ์ •์ฑ…์ธ Gaming-B์—์„œ๋Š”:

  • Draft: 20.1%๊นŒ์ง€ ๊ฐ์†Œ
  • ์ €๋Œ€์—ญํญยทํฐ batch verification: 6.6% โ†’ 41.7%
  • Micro-sleep: 1.0% โ†’ 6.9%

์ฆ‰, ๊ฒฝ์Ÿ์ด ์‹ฌํ•ด์ง€๋ฉด controller๊ฐ€ ์‹ค์ œ๋กœ ๊ณ ๋Œ€์—ญํญ Draft ๊ฐ์†Œ โ†’ ์ €๋Œ€์—ญํญ verification ์ฆ๊ฐ€ โ†’ micro-sleep ์ฆ๊ฐ€ ํ˜•ํƒœ๋กœ ์‹คํ–‰ ๋ชจ๋“œ๋ฅผ ๋ฐ”๊พผ๋‹ค. ๊ณ ์ • throttling์ด ์•„๋‹ˆ๋ผ ์ธก์ •๋œ ํ˜ผ์žก์— ๋”ฐ๋ผ ๋‹จ๊ณ„์ ์œผ๋กœ ์ ์‘ํ•œ๋‹ค๋Š” ๊ฒฐ๊ณผ๋‹ค.

Speculative acceptance๊ฐ€ ๋‚ฎ์•„์ง„ ์ด์œ 

Markdown Image

SERENO์˜ ํ›„๋ณด ํ† ํฐ acceptance rate๋Š” 18.9%๋กœ, ์ผ๋ฐ˜ speculative decoding์˜ 30.4%๋ณด๋‹ค ๋‚ฎ๋‹ค.

  • Foreground๊ฐ€ ๋ฐ”์˜๋ฉด draft๋ฅผ ๋นจ๋ฆฌ ์ค‘๋‹จํ•˜๊ณ 
  • ๋Œ€์—ญํญ ํšจ์œจ์ด ๋†’์€ ํฐ verification batch๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ

ํ›„๋ณด rejection์€ ๋งŽ์•„์ง€์ง€๋งŒ N-gram Filling์ด ์ฒ˜๋ฆฌ๋Ÿ‰ ์†์‹ค์„ ์ผ๋ถ€ ๋ณด์ƒํ•œ๋‹ค.

๋ชจ๋“  ํ›„๋ณด๋Š” target model์ด ์ตœ์ข… ๊ฒ€์ฆํ•˜๋ฏ€๋กœ ์ •ํ™•์„ฑ์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

7.4 Ablation Study

Component ablation

Markdown Image
  • Draft Preemption์ด ๊ฐ€์žฅ ํฐ ํšจ๊ณผ๋ฅผ ๋‚ธ๋‹ค. Jank๋ฅผ 8.5%์—์„œ 4.5%๋กœ ์•ฝ 47% ๊ฐ์†Œ์‹œ์ผœ, ๋น ๋ฅด๊ฒŒ draft๋ฅผ ๋Š๋Š” ๊ฒƒ์ด foreground ๋ณดํ˜ธ์˜ ํ•ต์‹ฌ์ž„์„ ๋ณด์—ฌ์ค€๋‹ค.
  • Selective Batching๊ณผ Micro-Sleep์€ verification ๋‹จ๊ณ„์˜ ๋‚จ์€ ๋ฉ”๋ชจ๋ฆฌ burst๋ฅผ ์ค„์—ฌ jank๋ฅผ Native 3.0%์— ๊ฐ€๊น๊ฒŒ ๋งŒ๋“ ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ œ์–ด๋“ค ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๊ฐ์†Œํ•œ๋‹ค.
  • N-gram Filling์€ ๋Œ€์—ญํญ ์ œ์–ด ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ, ๊ฐ์†Œํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ 12.9 โ†’ 15.6 tokens/s๋กœ ํšŒ๋ณตํ•˜๋Š” ๋ณด์ƒ ๊ธฐ๋Šฅ์ด๋‹ค.

N-gram filling ablation

N-gram ์ž์ฒด์˜ ๊ฐœ์„  ๊ธฐ๋ฒ•๋„ ๋ณ„๋„๋กœ ์‹คํ—˜ํ–ˆ๋Š”๋ฐ, ์ตœ์ข…์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋Ÿ‰์„ 14.42 โ†’ 18.06 tokens/s๋กœ ๋†’์—ฌ preemption ๋•Œ๋ฌธ์— ์†์‹ค๋œ ์†๋„์˜ ์•ฝ 25.2%๋ฅผ ํšŒ๋ณตํ–ˆ๋‹ค.

7.5 System Analysis

Energy efficiency

Markdown Image

CPU ๊ธฐ๋ฐ˜1.81 tokens/J
Chunk-Sleep2.07 tokens/J
์ผ๋ฐ˜ Speculative3.78 tokens/J
SERENO3.52 tokens/J

SERENO๋Š” ์ผ๋ฐ˜ speculative decoding๋ณด๋‹ค๋Š” ์•ฝ 7% ๋‚ฎ์ง€๋งŒ, ๋‹จ์ˆœ sleep์ด๋‚˜ CPU ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ 

NPU๋ฅผ ๋А๋ฆฐ ์ฃผํŒŒ์ˆ˜๋กœ ์˜ค๋ž˜ ์‹คํ–‰ํ•˜๊ธฐ๋ณด๋‹ค, ๋†’์€ ์„ฑ๋Šฅ์œผ๋กœ ์œ ํšจํ•œ ์ž‘์—…์„ ๋นจ๋ฆฌ ์ˆ˜ํ–‰ํ•œ ๋’ค ์–‘๋ณดํ•˜๋Š” race-to-sleep ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Hardware generality

Markdown Image

Snapdragon 8 Gen 3์—์„œ๋„ Tools์™€ Social workload์˜ jank๋ฅผ ์•ฝ 59~62% ๊ฐ์†Œ์‹œ์ผœ 8 Elite์™€ ๋น„์Šทํ•œ ํšจ๊ณผ๋ฅผ ๋ณด์˜€๋‹ค.
๊ตฌํ˜• ์นฉ์—์„œ๋Š” ๊ฒŒ์ž„ ๋ณ‘๋ชฉ์ด ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ๋ณด๋‹ค CPU/GPU ์—ฐ์‚ฐ ๋ถ€์กฑ์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. SERENO๋Š” ๋Œ€์—ญํญ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋ฏ€๋กœ compute-bound ์ƒํ™ฉ์—๋Š” ํšจ๊ณผ๊ฐ€ ์ œํ•œ๋œ๋‹ค.

Task and model robustness

ShareGPT, GSM8K, HumanEval์—์„œ ์‹คํ—˜ํ•œ ๊ฒฐ๊ณผ

์ฒ˜๋ฆฌ๋Ÿ‰: 15.89~17.16 tokens/s, Jank: 7.45~8.12%๋กœ ๋น„๊ต์  ์•ˆ์ •์ ์ด์—ˆ๋‹ค.

๋…ผ๋ฌธ์€ ๋ชจ๋“  ํ›„๋ณด๋ฅผ target model์ด ๊ฒ€์ฆํ•˜๋ฏ€๋กœ lossless๋ผ๊ณ  ๋ณด๊ณ , ๋ณ„๋„์˜ ์ถœ๋ ฅ ์ •ํ™•๋„ ํ‰๊ฐ€๋Š” ํ•˜์ง€ ์•Š์•˜๋‹ค.

๋‹ค๋งŒ ๋ชจ๋ธ ํ‰๊ฐ€๋Š” Llama ๊ณ„์—ด dense Transformer ์ค‘์‹ฌ์ด๋ผ๋Š” ๋ฒ”์œ„ ์ œํ•œ์€ ์žˆ๋‹ค.

System overhead

  • CPU ์‚ฌ์šฉ๋Ÿ‰: ๋‹จ์ผ ์ฝ”์–ด ๊ธฐ์ค€ ์•ฝ 4.7% ์ฆ๊ฐ€
  • ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ: 0.86GB, ์•ฝ 19% ์ฆ๊ฐ€
  • SERENO ์ „์šฉ static graph: 70MB ๋ฏธ๋งŒ

์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€๋ถ€๋ถ„์€ SERENO controller ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ speculative decoding์— ํ•„์š”ํ•œ 1B draft model์˜ ๊ฐ€์ค‘์น˜ ๋•Œ๋ฌธ์ด๋‹ค.

Related Work

Efficient On-Device LLM Inference

๊ธฐ์กด ์—ฐ๊ตฌ๋Š” ์ฃผ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด LLM ์ž์ฒด๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ์ง‘์ค‘ํ–ˆ๋‹ค.

  • ์–‘์žํ™”์™€ sparsity๋กœ ๋ชจ๋ธ ํฌ๊ธฐยท์—ฐ์‚ฐ๋Ÿ‰ ๊ฐ์†Œ
  • CPUยทGPUยทNPU๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ์ถ”๋ก  ํ”„๋ ˆ์ž„์›Œํฌ
  • ๋ชจ๋ฐ”์ผ NPU์šฉ ์—ฐ์‚ฐ ์ตœ์ ํ™”

ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ LLM์ด ํ•˜๋“œ์›จ์–ด๋ฅผ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด, foreground ์•ฑ๊ณผ ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ์˜ ์ž์› ๊ฒฝ์Ÿ์€ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋‹ค.

SERENO๋Š” ์ด๋Ÿฐ ์ถ”๋ก  ์—”์ง„์„ ๋Œ€์ฒดํ•˜๊ธฐ๋ณด๋‹ค, ๊ทธ ์œ„์— ๋ถ™์–ด์„œ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น QoS๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” control plane์— ๊ฐ€๊น๋‹ค.

Speculative decoding

๊ธฐ์กด speculative decoding ์—ฐ๊ตฌ๋Š” ์ž‘์€ ๋ชจ๋ธ์˜ ํ›„๋ณด๋ฅผ ํฐ ๋ชจ๋ธ์ด ๊ฒ€์ฆํ•ด decode ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ด ๋ชฉ์ 

SERENO์˜ ์ฐจ์ด๋Š” speculative decoding์„ ๊ฐ€์† ๊ธฐ๋ฒ• โ†’ ์ค‘๊ฐ„์— ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋Š” ์ž์› ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์œผ๋กœ ์žฌํ•ด์„ํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค.

๋…ผ๋ฌธ์€ ๋น„์Šทํ•œ ์›๋ฆฌ๋ฅผ early exit์—๋„ ์ ์šฉํ•ด, ํ˜ผ์žกํ•  ๋•Œ ์–•์€ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ์‹์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ณธ๋‹ค.

Limitation & Future Work

์ด๊ฑด ๋…ผ๋ฌธ์— ๋ช…์‹œํ•œ๊ฒŒ ์•„๋‹Œ ๋‚ด ์ƒ๊ฐ์ด๋‹ค.

Markdown Image

3.2 Physical Attribution: Bandwidth์—์„œ

Foreground ์•ฑ์ด ๋А๋ ค์ง€๋Š” ์›์ธ์€ ์—ฐ์‚ฐ ์ฝ”์–ด๋‚˜ ์บ์‹œ ๋ถ€์กฑ์ด ์•„๋‹ˆ๋ผ, NPU๊ฐ€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์„ ๊ณผ๋„ํ•˜๊ฒŒ ์ฐจ์ง€ํ•ด CPU์™€ GPU์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์ง€์—ฐ์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ SERENO๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ contention์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค.

Markdown Image

ํ•˜์ง€๋งŒ, ๊ตฌํ˜• SoC์˜ gaming workload์—์„œ๋Š” ๋ณ‘๋ชฉ์ด ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ๋ณด๋‹ค CPU/GPU compute๋กœ ๋ฐ”๋€Œ๋ฉด์„œ ํšจ๊ณผ๊ฐ€ ๊ฐ์†Œํ–ˆ๋‹ค.

์ตœ๊ทผ ๋ชจ๋ฐ”์ผ LLM ๋ถ„์„์—์„œ๋„ ๋ชจ๋ธ ๋‹จ๊ณ„์™€ runtime์— ๋”ฐ๋ผ CPUยทGPUยทNPU์˜ ์ƒ๋Œ€ ์„ฑ๋Šฅ๊ณผ ์—๋„ˆ์ง€ ํšจ์œจ์ด ๋‹ฌ๋ผ์ง€๊ณ , NPU๊ฐ€ ํ•ญ์ƒ ์ตœ์„ ์˜ backend๋Š” ์•„๋‹ˆ๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ณด๊ณ ๋˜๊ณ  ์žˆ๋‹ค.

https://arxiv.org/abs/2607.05475v1

โ€œThe optimal execution backend depends fundamentally on the inference phase.โ€

โ†’ compute-bound์ธ prefill์—์„œ๋Š” NPU๊ฐ€ ๊ฐ•ํ•˜์ง€๋งŒ, memory-bound์ธ decode์—์„œ๋Š” CPU๊ฐ€ ๋” ๋น ๋ฅธ phase split์„ ๊ด€์ฐฐํ–ˆ๋‹ค. NPU๋Š” ํฌ๊ณ  ๊ณ ์ •๋œ shape์˜ ์ž‘์—…์— ์ ํ•ฉํ•˜์ง€๋งŒ, decode๋Š” ์ž‘๊ณ  ๋™์ ์ธ kernel์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์กฐ์ ์œผ๋กœ ์ž˜ ๋งž์ง€ ์•Š๋Š”๋‹ค!

โ€œA complex scheduling problem requiring both intra-backend calibration and cross-backend coordination.โ€

โ†’ ๋ชจ๋ฐ”์ผ LLM ์ตœ์ ํ™”๋Š” ๋‹จ์ˆœํžˆ ์ข‹์€ kernel์„ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ, backend ๋‚ด๋ถ€์˜ frequencyยทthreadยทsleep ์กฐ์ • + CPUยทGPUยทNPU ์‚ฌ์ด์˜ ์‹คํ–‰ ๋ถ„๋ฐฐ๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜๋Š” scheduling ๋ฌธ์ œ๋‹ค!

https://arxiv.org/abs/2605.27435v1

โ€œAdopt stage-aware backend selection.โ€

โ†’ ์ด ๋…ผ๋ฌธ์€ ์•„์˜ˆ design guideline์œผ๋กœ prefill๊ณผ decode์— ์„œ๋กœ ๋‹ค๋ฅธ backend๋ฅผ ๋ฐฐ์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•œ๋‹ค. ํ•ด๋‹น ๊ตฌํ˜„์—์„œ๋Š” CPU๊ฐ€ prefill์—์„œ 1.27โ€“1.62๋ฐฐ ๋น ๋ฅด๊ณ , decode ํ•ต์‹ฌ GEMV ์—ฐ์‚ฐ์—์„œ๋Š” NPU๊ฐ€ ์œ ๋ฆฌํ•˜๋‹ค!

์—ฐ๊ตฌPrefillDecode
Is Your NPU Ready for LLMs?NPU ์šฐ์„ธCPU ์šฐ์„ธ
When NPUs Are Not Always FasterCPU ์šฐ์„ธNPU๊ฐ€ core operator์—์„œ ์šฐ์„ธํ•˜์ง€๋งŒ end-to-end ์ด๋“ ์ œํ•œ์ 

๋‘ ์—ฐ๊ตฌ๊ฐ€ ์ œ์‹œํ•˜๋Š” ์ตœ์  backend๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค

โ†’ ํŠน์ • phase์— ํ•ญ์ƒ ์ ํ•ฉํ•œ backend๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Œ์„ ๋ณด์—ฌ์ค€๋‹ค. ์ตœ์  backend๋Š” SoC๋ฟ๋งŒ ์•„๋‹ˆ๋ผ runtime, kernel implementation, quantization, operator coverage, context length ๋“ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

โ†’ backend ์„ ํƒ์„ LLM ๋‹จ๋… ์ฒ˜๋ฆฌ๋Ÿ‰๋งŒ์œผ๋กœ ๊ฒฐ์ •ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

Foreground application์˜ ํ˜„์žฌ ๋ณ‘๋ชฉ์— ๋”ฐ๋ผ์„œ ๋™์ผํ•œ backend๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ„์„ญ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค!

  • CPU-bound foreground โ†’ CPU ๊ธฐ๋ฐ˜ LLM ์‹คํ–‰ ํšŒํ”ผ
  • GPU-bound foreground โ†’ GPU offloading ํšŒํ”ผ
  • Memory-bound foreground โ†’ backend ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ๋Š” ๋ถˆ์ถฉ๋ถ„ (SERENO ์‚ฌ์šฉ)
  • Thermal/power pressure โ†’ ์—๋„ˆ์ง€ ํšจ์œจ์„ ๊ณ ๋ คํ•œ backend ๋ฐ ์‹คํ–‰ ๊ฐ•๋„ ์กฐ์ ˆ
SERENO๋Š” ํ•˜๋‚˜์˜ ์ฃผ์š” ๋ณ‘๋ชฉ ํ˜„์ƒ ํ•˜์—์„œ ํ•˜๋‚˜์˜ ๋ฐฑ์—”๋“œ๋ฅผ ์ œ์–ดํ•œ๋‹ค.
์•ž์œผ๋กœ๋Š” ๋™์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ ํ•˜์—์„œ ์ด๊ธฐ์ข… ๋ฐฑ์—”๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ œ์–ดํ•ด์•ผ ํ•œ๋‹ค!

๊ฒŒ์ž„+LLM ํƒ€๊ฒŸ

์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด, Game์—์„œ๋Š” Memory bound๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— CPU/GPU ๊ฐ™์€ compute bound ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค.

Markdown Image
Markdown Image
  • ์ตœ๊ทผ ๋ฐฐํ‹€ ๊ทธ๋ผ์šด๋“œ ๋“ฑ ๊ฒŒ์ž„์—์„œ npc์™€ ํ•จ๊ป˜ ํ”Œ๋ ˆ์ด ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์„ ๋ณด์ด๊ณ  ์žˆ๋‹ค.
  • ์•„์ง์€ ์„œ๋ฒ„ Side๋กœ ์ง„ํ–‰์ค‘์ธ๋ฐ, ์„œ๋ฒ„์—์„œ ๋ชจ๋ธ์„ ์œ ์ € ๊ฐœ๊ฐœ์ธ์— ๋Œ€ํ•ด ๋Œ๋ฆฌ๋ ค๋ฉด ์ปดํ“จํŒ…/๋ฆฌ์†Œ์Šค/๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉ ๋“ฑ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค, ๊ฐœ์ธ์ ์ธ ๋Œ€ํ™” ๋‚ด์šฉ์ด ์„œ๋ฒ„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๊บผ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค.
  • On-device ๋˜๋Š” hybrid LLM execution์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒŒ์ž„์€ ์—„๊ฒฉํ•œ frame deadline์„ ๊ฐ€์ง€๋ฏ€๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ LLM์ด foreground ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œ์ผœ์„œ๋Š” ์•ˆ ๋œ๋‹ค.
  • ๊ฒŒ์ž„์˜ dominant bottleneck์€ ์žฅ๋ฉด๊ณผ ์‹คํ–‰ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • CPU-bound: game logic, physics, simulation
    • GPU-bound: rendering and shader execution
    • Memory-bound: asset streaming and unified-memory contention
    • Thermal-bound: sustained gaming and LLM execution

๋”ฐ๋ผ์„œ ๊ณ ์ •๋œ backend๋‚˜ memory-only control๋ณด๋‹ค, ํ˜„์žฌ ๊ฒŒ์ž„ ๋ณ‘๋ชฉ๊ณผ LLM inference phase๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜๋Š” runtime adaptation์ด ํ•„์š”ํ•˜๋‹ค.

RAG-based Gaming Agent

RAG ๊ธฐ๋ฐ˜ Gaming Agent๋Š” NPC์˜ ๊ธฐ์–ต, ํ€˜์ŠคํŠธ ์ƒํƒœ, ์›”๋“œ ์ •๋ณด์™€ ๊ฐ™์€ ๊ฒŒ์ž„ ์ง€์‹์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด LLM ์‘๋‹ต์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ embedding ์ƒ์„ฑ, vector index ์‚ฝ์ž…, ์š”์•ฝยท์ •๋ฆฌ ์ž‘์—…์ด ์ถ”๊ฐ€ ์ž์›์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ memory update๋Š” ๋งค๋ฒˆ ์ฆ‰์‹œ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ „ํˆฌ์ฒ˜๋Ÿผ foreground ๋ถ€ํ•˜๊ฐ€ ๋†’์€ ๊ตฌ๊ฐ„์—์„œ๋Š” ๋ฏธ๋ฃจ๊ณ , ๋ฉ”๋‰ดยท๋กœ๋”ฉ ํ™”๋ฉด์ด๋‚˜ ์ž์› ์—ฌ์œ ๊ฐ€ ์žˆ๋Š” ์‹œ์ ์— batch๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ–ฅํ›„์—๋Š” frame SLO๋ฅผ ์ง€ํ‚ค๋ฉด์„œ RAG memory update๋ฅผ ์ž์› ์—ฌ์œ  ๊ตฌ๊ฐ„์— opportunistically ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ ๋ คํ•ด๋ณด๋ฉด ์žฌ๋ฐŒ์„ ๊ฒƒ ๊ฐ™๋‹ค.