| Venue & Year | OSDI '26 |
|---|---|
| Link | https://www.usenix.org/conference/osdi26/presentation/xin |
| Authors | Tong Xin, Xinrui Shi, Mingkai Dong, and Zeyu Mi |
| Affiliation | Institute 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 ๊ตฌ์กฐ๋ค.
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

โ 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

๊ฒฐ๊ณผ
- 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 ๋๋ฌธ์ ์ฑ์ด ๋๋ ค์ง๋ ์์ธ ํ์ธ

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์ ๊ณผ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ ์ดํ์ง ๋ชปํ๋๊ฐ?

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 ์ค์ค๋ก ๋์ญํญ์ ์๋ณดํ๋ ์ํํธ์จ์ด ๋ฐฉ์์ด ํ์ํ๋ค๊ณ ๊ฒฐ๋ก ๋ธ๋ค.


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ํ ๋ ๋ฏธ๋ฆฌ ๊ณ ์ ํด์ผ ํ๋ค.

5.1 Elastic Speculative Decoding
1. Preemptible Draft Execution
- ๊ธฐ์กด์๋ draft model๋ ํ๋์ ํฐ static graph๋ก ์คํ๋ผ ์ค๊ฐ์ ๋ฉ์ถ๊ธฐ ์ด๋ ต๋ค.
- SERENO๋ draft model์ Transformer layer ๋จ์์ ์์ subgraph๋ก ์ปดํ์ผํ๋ค.
- ๊ฐ subgraph๋ 1ms ๋ฏธ๋ง์ผ๋ก ์คํ๋๋ฏ๋ก, subgraph ๊ฒฝ๊ณ๋ง๋ค ์ค๋จ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.

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 ํ๋ณด๋ก ์ฑ์ด๋ค.

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๋ฅผ ๋ฏธ๋ฆฌ ์ปดํ์ผํด ๋๋ค.
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 ์ฌ์ด์์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฏ๋ก, ๊ฒฝ์์ด ๋ฐ์ํ๋ฉด ์คํ ์๊ฐ์ด ๋๋ ค์ง๋ค.
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์ด ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ์ผ๋ง๋ ์๋ณดํ ์ง ๊ฒฐ์ ํ๋ ๋ถ๋ถ
- Draft Preemption โ ์ฆ๊ฐ์ ์ธ ๋์
Draft๋ batch 1๋ก ์คํ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ง์ฝ๋๊ฐ ๊ฐ์ฅ ๋๋ค. ๊ฒฝ์์ด ๊ฐ์ง๋๋ฉด ๋จ์ draft๋ฅผ ๋ฐ๋ก ์ค๋จํ๊ณ verification์ผ๋ก ๋์ด๊ฐ ๋์ญํญ์ ์ฆ์ ๋ด๋๋๋ค.
- Selective Batching โ ํฐ ๋จ์ ์กฐ์
Verification์์ ๊ฒฝ์์ด ์ฝํ๋ฉด ์์ batch๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฒฝ์์ด ์ฌํ๋ฉด ํ๊ท ๋์ญํญ ์๊ตฌ๋์ด ๋ฎ์ ํฐ batch graph๋ฅผ ์ ํํ๋ค.
- 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 model | Llama-3.1-8B-Instruct, W4A16 |
| Draft model | SERENO์ 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

Comparison with SOTA frameworks (a), (b)
| ๋ฐฉ๋ฒ | Foreground QoS | LLM ์ฑ๋ฅ |
|---|---|---|
| PowerServe | NPU ๋์ญํญ์ ์ ์ดํ์ง ์์ jank๊ฐ ํฌ๊ฒ ์ฆ๊ฐ | ๋ณดํต ์์ค |
| llama.cpp GPU/NPU | ์ฌ์ ํ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ฒฝ์ ๋ฐ์ | ์ผ๋ถ ๋ฐฉ์์ ์ฒ๋ฆฌ๋์ด ๋ฎ์ |
| MNN | ๊ฐ์ญ์ ์ค์ง๋ง LLM์ด ๋งค์ฐ ๋๋ฆผ | ํ๊ท ์ฝ 3.78 tokens/s |
| SERENO | Native์ ๊ฐ๊น์ด ํ๋ฉด ๋ถ๋๋ฌ์ | ๋์ ์ฒ๋ฆฌ๋ ์ ์ง |
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%๊น์ง ๋จ์ด๋จ๋ฆฐ๋ค.

- 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

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) ์ํฉ๋ ํ๊ฐํ๋ค.

SERENO์ jank๋ ์ ์ฒด ๊ตฌ๊ฐ์์ 0.72~1.16%์๊ณ , PowerServe์ 1.64~2.51%๋ณด๋ค ๋๋ต ์ ๋ฐ ์์ค
7.3 Mechanism Analysis
SERENO์ ์ผ์์ controller๊ฐ ์ค์ ๋ก ์๋๋๋ก ์๋ํ๋์ง ํ์ธ
์ค์ ๋ฉ๋ชจ๋ฆฌ ๋ณ๋ชฉ์ ์ค์๋๊ฐ?

์ ์๋ค์ CPU๊ฐ ์ฒด๊ฐํ๋ DRAM ์ง์ฐ์ proxy๋ก CPLM(Stall Cycles per LLC Miss)์ ์ฌ์ฉํ๋ค.
๊ฐ์ด ํด์๋ก LLC miss ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ค๋ ๊ธฐ๋ค๋ ธ๋ค๋ ๋ป์ด๋ค.
SERENO๋ uncontrolled PowerServe๋ณด๋ค CPLM์ 42% ๊ฐ์์์ผฐ๋ค. ์ฆ, ๋จ์ํ jank ์งํ๋ง ์ข์์ง ๊ฒ ์๋๋ผ ์์ธ์ธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ํผ์ก ์์ฒด๋ฅผ ์ค์ ๋ก ์ํํ๋ค.
Contention Score๊ฐ ๋ฏฟ์ ๋งํ๊ฐ?

Draft subgraph ์คํ ์๊ฐ์ผ๋ก ๊ณ์ฐํ Contention Score์ ์ค์ CPLM์ ๋น๊ตํ๋ค.
- ํ๋ณธ: ์ฝ 125,060๊ฐ
- Pearson correlation: ()
์ฆ, draft ์คํ์ด ํ์๋ณด๋ค ๋๋ ค์ง๋ ์ ๋๊ฐ ์ค์ ๋ฉ๋ชจ๋ฆฌ stall๊ณผ ๊ฐํ๊ฒ ์ฐ๊ฒฐ๋๋ค. ๋ณ๋ ํ๋์จ์ด ์นด์ดํฐ ์์ด๋ ๋ฉ๋ชจ๋ฆฌ ํผ์ก์ ๊ฝค ์ ํํ ๊ฐ์งํ๋ค๋ ์๋ฏธ๋ค.
Controller๊ฐ ์ํฉ์ ๋ง๊ฒ ๋์ํ๋๊ฐ?

์ผ๋ฐ 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๊ฐ ๋ฎ์์ง ์ด์

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

- 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

| CPU ๊ธฐ๋ฐ | 1.81 tokens/J |
| Chunk-Sleep | 2.07 tokens/J |
| ์ผ๋ฐ Speculative | 3.78 tokens/J |
| SERENO | 3.52 tokens/J |
SERENO๋ ์ผ๋ฐ speculative decoding๋ณด๋ค๋ ์ฝ 7% ๋ฎ์ง๋ง, ๋จ์ sleep์ด๋ CPU ๋ฐฉ์๋ณด๋ค ํจ์ฌ ํจ์จ์
NPU๋ฅผ ๋๋ฆฐ ์ฃผํ์๋ก ์ค๋ ์คํํ๊ธฐ๋ณด๋ค, ๋์ ์ฑ๋ฅ์ผ๋ก ์ ํจํ ์์ ์ ๋นจ๋ฆฌ ์ํํ ๋ค ์๋ณดํ๋ race-to-sleep ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ด๋ค.
Hardware generality

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
์ด๊ฑด ๋ ผ๋ฌธ์ ๋ช ์ํ๊ฒ ์๋ ๋ด ์๊ฐ์ด๋ค.

3.2 Physical Attribution: Bandwidth์์
Foreground ์ฑ์ด ๋๋ ค์ง๋ ์์ธ์ ์ฐ์ฐ ์ฝ์ด๋ ์บ์ ๋ถ์กฑ์ด ์๋๋ผ, NPU๊ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๊ณผ๋ํ๊ฒ ์ฐจ์งํด CPU์ GPU์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ง์ฐ์ด ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์ธ๊ธํ๋ค.
๊ทธ๋์ SERENO๋ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ contention์ ๋์์ผ๋ก ํ๋ค.

ํ์ง๋ง, ๊ตฌํ 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๊ฐ ์ ๋ฆฌํ๋ค!
| ์ฐ๊ตฌ | Prefill | Decode |
|---|---|---|
| Is Your NPU Ready for LLMs? | NPU ์ฐ์ธ | CPU ์ฐ์ธ |
| When NPUs Are Not Always Faster | CPU ์ฐ์ธ | 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 ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํ๋ค.


- ์ต๊ทผ ๋ฐฐํ ๊ทธ๋ผ์ด๋ ๋ฑ ๊ฒ์์์ 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 ๋ฐฐ์นํ๋ ๋ฐฉ์์ผ๋ก ๊ณ ๋ คํด๋ณด๋ฉด ์ฌ๋ฐ์ ๊ฒ ๊ฐ๋ค.