SADDLE: PIM-enabled heterogeneous system(GPU + PIM)에서 request마다 draft length를 바꿔 speculative decoding throughput 올리기
papers/Adaptive_Draft_Sequence_Length_Enhancing_Speculative_Decoding_Throughput_on_PIM-Enabled_Systems_1.pdf (15쪽) · §IV-C p.7 = 논문이 그렇게 쓴 절·쪽 · 해석 = 논문 내용에서 요약자가 끌어낸 설명 · 논문에 없음 = 배경지식·예시 · 용어는 1 절 용어표의 뜻으로만 쓴다 · 그림은 누르면 크게 열린다0한눈에 보기
speculative decoding은 작은 DLM이 draft token을 만들고 큰 TLM이 한 번에 verification 하는 방식이다. 기존 PIM-enabled heterogeneous system은 draft length $d$를 고정하며, 논문의 동기 실험(SpecPIM, OPT-66B+OPT-1.3B, $d=8$)에서는 batch size 64부터 speculative decoding을 쓰지 않은 baseline보다 throughput이 낮았다 §III-A p.4.
SADDLE은 request마다 누적 확률 $H_t$가 $\tau$ 아래로 떨어지면 draft를 멈추고, request마다 draft length가 달라져 생기는 bubble은 Shared Pool·Eager Pool로, operator arithmetic intensity의 변화는 동적 operator mapping으로 다룬다 §I p.2. 세 모델 쌍·batch size 16–128 평균 throughput은 GPU-SD 대비 2.88×, PIM-SD 대비 1.71×다 §V-B p.10.
| 번호 | 일어나는 일 | 근거 |
|---|---|---|
| 0.2.11 | Controller가 DLM의 다음 token 분포 $P(x_t \mid x_{<t})$를 계산해 request마다 draft token을 하나 sample 하고, sample 한 token의 DLM 확률 $p_t$를 곱해 $H_t$를 갱신한다. $H_t < \tau$이면 Controller는 해당 request의 draft를 멈춘다 | §IV-C p.7 |
| 0.2.22 | 해당 request의 이전 draft token이 verification 중이 아니면 새 draft token은 Shared Pool로 간다. Shared Pool이 가득 차지 않았으면 Eager Pool을 거치지 않는다 | §IV-A p.6, §IV-D p.8 |
| 0.2.33 | verification 중이면 새 draft token은 Eager Pool에 잠시 둔다 | §IV-A p.6, §IV-D p.8 |
| 0.2.44 | Shared Pool의 token 수가 GPU의 parallel verification capacity $C$에 닿거나 GPU가 idle이면 모두 TLM으로 보내 verification 한다 | §IV-C p.8 |
| 0.2.55 | request의 이전 draft token이 모두 accept 되면 같은 request의 Eager Pool draft token을 Shared Pool로 옮긴다 | §IV-D p.8 |
| 0.2.66 | 하나라도 reject 되면 같은 request의 Eager Pool draft token을 모두 버리고, TLM이 고친 token을 입력으로 DLM을 다시 돌린다 | §IV-D p.8 |
$d$를 고정하면 batch size가 클 때 rejected token의 생성·verification 연산이 hardware 자원을 차지해 throughput이 떨어진다 §I p.2. optimal draft length는 task·speculative decoding iteration·모델 쌍마다 다르므로 SADDLE은 $H_t < \tau$로 request마다 draft를 멈춘다(①) §III-B p.5 §IV-C p.7.
adaptive draft length만 넣은 SADDLE-d는 OPT-66B+OPT-1.3B, batch size 16–128 평균으로 PIM-SD보다 1.22× 느렸고, 논문은 bubble과 operator intensity 변화를 원인으로 든다 §V-C p.11. 그래서 Shared Pool로 여러 micro-batch의 verification을 모으고, Eager Pool로 verification 중에도 draft를 잇는다(②) §IV-C·D p.8.
가변 draft length와 cross-micro-batch verification 때문에 operator의 arithmetic intensity가 실행 중 바뀌므로, intensity를 보고 GPU·PIM mapping을 바꾼다(③) §IV-E p.9. 셋을 합친 SADDLE은 세 모델 쌍·batch size 16–128 평균 PIM-SD 대비 1.71×다 §V-B p.10.
9 단계로 펼쳐 보기 (주장 → 근거)
- DLM과 TLM의 연산 성격이 달라, 기존 연구는 GPU 같은 xPU와 PIM을 함께 쓰는 heterogeneous system을 연구해 왔다.
근거: DLM은 draft token을 하나씩 만드는 memory-intensive GEMV, TLM은 여러 draft token을 한 번에 verification 하는 compute-intensive GEMM을 쓴다 §I p.1. 이런 system은 compute-intensive operator를 xPU에, memory-intensive operator를 PIM에 정적으로 mapping 한다 §I p.1–2. SpecPIM은 실행 전 offline 분석으로 mapping을 정하고 실행 중 바꾸지 않는다 §II-C p.4. - 그런데 $d$를 고정하면 batch size가 클 때 speculative decoding을 쓰지 않은 baseline보다 throughput이 낮아질 수 있다.
근거: 동기 실험(SpecPIM, OPT-66B+OPT-1.3B, $d=8$)에서 batch size 64부터 baseline 아래로 떨어졌다(Fig.3a) §III-A p.4. 논문은 rejected token의 생성·verification 연산이 batch size가 클수록 유효한 inference에 쓸 hardware 자원을 차지한다고 설명한다 §I p.2. - $d$ 하나를 잘 골라도 부족하다. optimal draft length가 task·speculative decoding iteration·모델 쌍마다 다르기 때문이다.
근거: 같은 동기 실험, batch size 64에서 $d=4$가 baseline의 1.41×로 가장 높고, $d=2$는 $d=4$보다 1.12× 낮다. $d$가 길면 acceptance rate가 떨어지고, 짧으면 verification이 잦아 TLM 병렬성이 준다 §III-A p.4. task 별 accepted token 수가 speculative decoding iteration마다 바뀐다(Fig.4b,c) §III-A p.5. - 그래서 누적 확률 $H_t = \prod_{i=1}^{t} p_i$가 $\tau$ 아래로 떨어지면 해당 request만 draft를 멈춘다.
근거: optimal draft length를 prediction stage 전에 정하기는 어렵지만, draft token의 누적 확률을 보며 추정할 수 있다고 논문은 쓴다 §IV-C p.7. 판단은 곱셈 몇 번과 비교 한 번이고 SADDLE Manager의 전용 hardware에서 돌아, monitoring·decision-making은 end-to-end latency의 0.83%다 §V-E p.11. - 그런데 adaptive draft length만 넣으면 PIM-SD보다 느리다.
근거: request마다 $d$가 다르면 짧게 끝난 request가 가장 긴 request의 draft가 끝날 때까지 verification을 기다린다(Fig.5b) §III-B p.5. SADDLE-d는 OPT-66B+OPT-1.3B, batch size 16–128 평균 PIM-SD 대비 1.22× 느렸고, 논문은 bubble과 operator intensity 변화(Fig.6)를 원인으로 든다 §V-C p.11. - 그래서 Shared Pool에 여러 micro-batch의 draft token을 모았다가 한 번에 verification 한다.
근거: 합이 GPU의 parallel verification capacity $C$에 닿거나 GPU가 idle이면 TLM으로 보내며, 논문은 cross-micro-batch verification이 utilization을 높이고 idle time을 줄인다고 쓴다 §IV-C p.8. SADDLE-p는 SADDLE-d 대비 1.52×, PIM-SD 대비 1.25×다(같은 조건) §V-C p.11. - 그런데 Shared Pool이 빨리 차면 더 draft 할 수 있던 request가 일찍 끊긴다. 그래서 Eager Pool로 verification 중에도 draft를 잇는다.
근거: verification 중인 draft token이 모두 accept 된다고 가정하고 DLM이 계속 draft 한다. reject가 나면 같은 request의 Eager Pool draft token을 버리고 TLM이 고친 token부터 다시 draft 한다 §IV-D p.8. Eager Pool을 넣으면 SADDLE-p 대비 1.24×다 §V-C p.11. - 가변 draft length 때문에 operator의 arithmetic intensity가 실행 중 바뀌어 정적 mapping이 비효율이 된다. 그래서 intensity를 보고 operator를 다시 배치한다.
근거: effective batch size가 줄면 DLM FC는 PIM이 유리해지고, $d$가 늘면 TLM attention은 GPU가 유리해진다(Fig.6) §III-B p.5. SADDLE은 DLM FC·TLM attention만 threshold와 비교해 remapping 한다 §IV-E p.9. ablation(OPT-66B+OPT-1.3B)에서 마지막 단계가 1.13×를 더하고 §V-C p.11, Fig.19에서는 operator scheduling을 켜면 throughput이 1.21×다 §V-E p.12. - 세 부품을 합친 SADDLE은 batch size가 커져도 throughput이 비교 system 중 가장 높다.
근거: 세 모델 쌍·batch size 16–128 평균 throughput이 GPU-SD 대비 2.88×, PIM-SD 대비 1.71×다 §V-B p.10. batch size 1–8(OPT-66B+OPT-1.3B)에서는 PIM-SD와 비슷하며, 논문은 낭비 연산의 영향이 작기 때문이라고 쓴다 §V-D p.11.
1~7 절 첫머리에는 앞 절에서 이어지는 이유를 한 문장씩 붙였고, 오류 몇 곳을 고쳤다.
이번 보강에서 고친 곳 (2026-10-01)
- draft token을 sample 하고 $H_t$를 갱신하는 주체를 Controller로 고쳤다(0 절 흐름 표 1 행) §IV-C p.7.
- Fig.3(a)의 y 축은 batch size마다 baseline을 1로 둔 값이 아니라, batch size 8의 baseline을 1로 둔 값으로 읽힌다고 고쳤다 해석.
- Fig.12의 "pipeline stall 제거", Fig.16의 "asynchronous pipeline으로 1.73×", Fig.19의 "가속 여지를 다 씀"은 원문 표현으로만 남기고 실제 범위를 해석 으로 따로 적었다(규칙 2.10).
- ① 의 식을 중단 조건 → $H_t$ → $p_t$ 순서로 바꿨고(규칙 3.4), 여러 패널 그림의 caption을 패널별 축·지표부터 설명하도록 고쳤다(규칙 4.4). 세부는
AUDIT_rigor.md의 "2026-10-01 보강".
1배경: 용어와 speculative decoding·PIM의 기본
0 절의 흐름 그림은 draft token·Shared Pool·operator mapping 같은 용어를 설명 없이 쓴다. 그래서 1 절은 2 절 이후에 쓰는 용어의 뜻을 표로 고정하고, speculative decoding·PIM·arithmetic intensity·micro-batch를 그림과 함께 먼저 설명한다 논문에 없음.
speculative decoding은 DLM이 draft token $d$ 개를 만들고 TLM이 한 번에 verification 해, 앞에서부터 accept 된 token을 출력하는 방식이다 §II-B p.3.
PIM은 memory bank 옆에 PE를 두어 memory-bound operator를 memory 안에서 계산하는 hardware이고, SADDLE 논문은 GPU와 PIM을 함께 쓰는 system에서 operator를 어디에 둘지를 다룬다 §II-C p.4.
1.1용어표
| 용어 | 정확한 뜻 (요약 문서에서) | 기호 | 논문 원문 표기 |
|---|---|---|---|
| 1.1.1.1DLM · TLM | DLM = draft token을 만드는 작은 모델, TLM = draft token을 verification 하는 원래의 큰 모델 | – | "draft language model", "target language model" (§I p.1). Fig.4(c)는 "Llama3-70B+Llama3-1B", 평가는 Llama-3.1-70B-Instruct + Llama-3.2-1B-Instruct (§V-A p.9) |
| 1.1.1.2draft token · accepted / rejected token | DLM이 만든 후보 token. verification을 통과하면 accepted, 못 하면 rejected. rejected token 뒤의 draft token은 모두 버린다 | $x_t$ | "draft tokens", "discarded". 원문은 버려지는 token을 "invalid tokens"로도 쓴다 (§I p.2, §V-B p.10) |
| 1.1.1.3prediction stage · verification stage | DLM이 draft token을 만드는 단계 · TLM이 한 번에 검사하는 단계 | – | "prediction", "drafting", "verification" (§II-B p.3) |
| 1.1.1.4speculative decoding iteration · drafting iteration | prediction stage + verification stage 한 번 · prediction stage 안에서 DLM이 draft token 하나를 만드는 한 번 | $t$ (drafting iteration) | 원문은 "iteration"을 decoding iteration(autoregressive), speculative decoding iteration, drafting iteration 셋에 쓴다 (§II-A p.3, §III-A p.4, §IV-C p.7) |
| 1.1.1.5draft length | 한 prediction stage에서 request 하나에 DLM이 만드는 draft token 수. 기존 system은 사용자가 정하는 고정값, SADDLE은 request마다 실행 중 정한다 | $d$ | "draft sequence length", "draft length" (§I p.1) |
| 1.1.1.6optimal draft length | 해당 speculative decoding iteration에서 accept 될 수 있는 draft token의 최대 수 | – | "the maximum number of draft tokens that can be accepted in that iteration" (§III-A p.5). Fig.4(b)(c)의 y 축은 "No. of accepted tokens" |
| 1.1.1.7acceptance rate | accepted token 수 ÷ DLM이 만든 draft token 수 | – | "the ratio of accepted to predicted tokens" (§I p.2) |
| 1.1.1.8누적 확률 | DLM이 sample 한 draft token 확률 $p_i$를 곱한 값. TLM의 acceptance 확률이 아니다 | $p_t$, $H_t$ | "cumulative probability" (§IV-C p.7). 원문은 같은 값을 "cumulative acceptance probability"로도 쓴다 (Abstract, §IV-D p.8, §VII p.13) |
| 1.1.1.9threshold | $H_t$가 $\tau$ 아래로 떨어지면 draft를 멈추는 기준. validation set으로 offline에 정한다 | $\tau$ | "predefined threshold τ" (§IV-C p.7–8) |
| 1.1.1.10request · batch · batch size | request = 사용자 요청 하나(sequence 하나), batch = 함께 처리하는 request 묶음, batch size = batch의 request 수 | – | "the number of concurrent requests (i.e., batch size)" (§I p.2) |
| 1.1.1.11micro-batch | pipeline parallelism에서 batch를 나눈 request 부분집합. pipeline stage 하나가 한 번에 micro-batch 하나를 처리한다 | – | "micro-batches—each comprising a subset of requests in the batch" (§IV-B p.6) |
| 1.1.1.12effective batch size · effective micro-batch size | draft token 생성의 각 단계에서 아직 draft 중인 request 수. micro-batch 안에서 세면 effective micro-batch size | – | "the number of active requests at each stage of draft token generation" (§III-B p.5), "effective micro-batch size" (§IV-E p.9) |
| 1.1.1.13pipeline stage | PIM device를 $S$ 개 group으로 나누고 group마다 모델 layer 일부를 맡긴 단위 | $S$ | "S pipeline stages" (§IV-B p.6) |
| 1.1.1.14bubble | DLM 또는 TLM을 실행하는 hardware(GPU·PIM)가 다른 stage 나 다른 request를 기다리느라 연산하지 않는 시간. 예: draft를 일찍 끝낸 request가 가장 긴 request의 draft가 끝날 때까지 verification을 기다리는 시간(Fig.5b) | – | "pipeline bubbles", "pipeline stalls", "idle time", "Idleness"(Fig.11)를 섞어 쓴다 |
| 1.1.1.15SADDLE Manager | draft length 조정·pipeline scheduling·operator scheduling을 하는 hardware. Draft Generator 여러 개, Shared Pool, Scheduler로 이뤄진다 | – | "SADDLE Manager" (Fig.8), "hardware manager" (§IV-A p.5) |
| 1.1.1.16Draft Generator · Controller | micro-batch마다 하나. Draft Generator = Controller + Eager Pool. Controller는 $H_t$로 request 별 draft length를 정하고 draft token을 어느 pool에 둘지 정한다 | – | §IV-A p.6 |
| 1.1.1.17Shared Pool | 모든 micro-batch의 draft token을 모아 두었다가 한꺼번에 TLM verification에 보내는 buffer. CAM으로 구현. Shared Pool의 token 수가 $C$에 닿으면 verification을 시작한다 | $C$ = GPU가 한 번에 verification 할 수 있는 draft token 수(parallel verification capacity) | "cross-micro-batch Shared Pool" (§IV-C p.8) |
| 1.1.1.18Eager Pool | verification 중에 DLM이 계속 만든 draft token을 잠시 두는 buffer. micro-batch마다 하나 | – | "Eager Pool" (§IV-D p.8). 평가 절은 "eager pool"로 소문자 표기 |
| 1.1.1.19Scheduler | DLM FC·TLM attention의 arithmetic intensity를 추정해 GPU·PIM 중 어디서 돌릴지 정하는 SADDLE Manager의 부품 | – | §IV-E p.9 |
| 1.1.1.20operator (FC · attention) | FC operator = weight 행렬을 곱하는 operator(원문 예: QKV generation, FFN), attention operator = multi-head attention. "DLM FC", "TLM attention"은 해당 모델의 operator를 뜻하는 요약의 표기 | – | "FC operators", "attention operator" (§II-A p.3). 원문은 같은 대상을 "kernel"(§II-A), "FC layers"·"attention layer"(§V-D)로도 쓴다 |
| 1.1.1.21layer | decoder layer 하나(QKV generation·multi-head attention·projection·FFN) | – | "Transformer decoder layers" (§II-A p.3) |
| 1.1.1.22GEMV · GEMM | 행렬 × vector · 행렬 × 행렬 | – | "general matrix-vector / matrix-matrix multiplication" (§II-A·B p.3) |
| 1.1.1.23arithmetic intensity · memory-bound · compute-bound | memory에서 읽은 1 byte 당 연산 수(FLOPs/Byte). 작으면 memory 대역폭이, 크면 연산기가 성능을 정한다 | – | "arithmetic intensity (FLOPs/Byte)" (Fig.6). threshold 이름은 "PIM compute-bound", "GPU memory-bound"(§IV-E) 또는 "GPU bandwidth-bound"(§III-B) |
| 1.1.1.24GPU | compute-intensive operator를 맡는 processor. SADDLE 논문의 설계·평가에서는 NVIDIA A100 | – | 일반 서술은 "xPU"(GPU, TPU 등), device 안에서는 "centralized processor" (§I p.1, §IV-A p.6) |
| 1.1.1.25PIM | memory bank마다 PE를 붙여 memory 안에서 계산하는 processing-in-memory | – | "PIM units", "PIMs" (§I, §IV-E) |
| 1.1.1.26PIM chip | HBM-PIM 구조의 HBM stack 하나. buffer die 1 장 위에 DRAM die 8 장, bank마다 PE | – | "PIM chip ... based on the commercial HBM-PIM architecture" (§IV-A p.6). §III-A의 "HBM-PIM devices"와 §V-A의 "HBM stacks"도 같은 대상으로 읽힌다 해석 |
| 1.1.1.27SADDLE PIM device | GPU 1 개 + router + PIM chip 여러 개(평가에서는 5 개, 80 GB)로 이뤄진 장치. 평가는 8 개를 쓴다 | – | "SADDLE PIM device" (§IV-A p.6, §V-A p.9) |
| 1.1.1.28pCH · BG · bank · PE | DRAM die 하나에 pCH 8 개, pCH 하나에 BG 4 개, BG 하나에 bank 4 개, bank 하나에 PE 하나 | – | "pseudo channels", "bank groups", "Processing Element" (§IV-A p.6) |
| 1.1.1.29accumulator · SFU | accumulator = pCH 안 부분합을 모으는 unit(pCH 당 4 개), SFU = HBM stack의 buffer die에서 softmax·normalization 등을 하는 unit | – | §IV-A p.6, §V-F p.12 |
| 1.1.1.30SpecPIM · PIM-SD | SpecPIM = 동기 실험의 system(A100 4 개, A100마다 HBM-PIM 5 개). PIM-SD = 평가 baseline, AttAcc 식 hardware(A100 8 개 + HBM stack 40 개) 위에서 SpecPIM의 mapping 전략을 쓴 speculative decoding | – | §III-A p.4, §V-A p.9 |
| 1.1.1.31GPU-AD · GPU-SD · PIM-AD | AD = autoregressive decoding(TLM만), SD = speculative decoding. GPU- 는 DGX A100, PIM- 는 AttAcc 식 GPU + PIM system | – | §V-A p.9 |
| 1.1.1.32baseline (동기 실험) | SpecPIM과 같은 hardware에서 OPT-66B로 autoregressive decoding 한 system | – | §III-A p.4 |
| 1.1.1.33SADDLE-d · -p · -s | ablation 변형. -d = adaptive draft length만, -p = + Shared Pool(DLM·TLM은 순차), -s = + Eager Pool(FC는 GPU, attention은 PIM 고정). SADDLE = + 동적 operator mapping | – | §V-C p.11. 원문은 마지막 단계도 "SADDLE-s, which dynamically maps operators"라 써서 이름이 겹친다. Fig.14 legend 기준으로 나눴다 해석 |
| 1.1.1.34throughput · energy efficiency | 원문은 단위를 밝히지 않고, 그림은 GPU-AD 또는 PIM-SD 대비 정규화 값이다 | – | "Normalized Throughput", "Energy Efficiency" (Fig.12–15) |
1.2autoregressive decoding과 KV cache
autoregressive decoding · KV cache
LLM은 prompt 전체를 한 번에 처리하는 prefill 뒤에, iteration마다 token 하나를 만드는 decoding을 반복한다 §II-A p.3. 다음 token이 앞 token에 의존하므로 output token $T$ 개를 만들려면 decoding을 $T-1$ 번 차례로 돌아야 하고, 논문은 순차 decoding이 throughput을 낮춘다고 쓴다 §I p.1. 앞 token 들의 Key·Value를 저장해 다시 쓰는 것이 KV cache이며, large batch에서는 KV cache를 읽는 memory traffic이 bottleneck이 될 수 있다 §II-A·B p.3. 논문은 PIM이 autoregressive decoding 같은 memory-bound workload에 알맞다고 쓴다 §VI p.12.1.3speculative decoding
speculative decoding (DLM · TLM)
DLM이 draft token $d$ 개를 차례로 만들고, TLM이 $d$ 개를 한 번에 verification 한다. rejected token이 나오면 rejected token과 뒤의 draft token을 모두 버리고, TLM이 고친 token을 다음 speculative decoding iteration의 입력으로 쓴다 §II-B p.3. draft token이 모두 accept 되면 TLM이 token 하나를 더 만든다 §II-B p.4. TLM이 여러 token을 verification 하는 시간은 원래 LLM이 token 하나를 만드는 시간보다 조금 길 뿐이어서, accept가 많을수록 iteration 하나에 여러 token을 얻는다 §II-B p.3.1.4draft length와 batching
draft length · optimal draft length · acceptance rate
draft length $d$는 한 prediction stage에서 request 하나에 DLM이 만드는 draft token 수이고, 기존 system에서는 사용자가 정하는 고정 hyperparameter다 §I p.1. acceptance rate는 accepted token 수 ÷ draft token 수이며, 모델·dataset·batch size에 따라 크게 달라진다고 논문은 인용한다 §I p.2. optimal draft length는 해당 speculative decoding iteration에서 accept 될 수 있는 draft token의 최대 수다 §III-A p.5. $d$가 optimal draft length보다 길면 rejected token 연산이 낭비되고, 짧으면 verification이 잦아져 TLM 병렬성이 준다 §I p.2.batching (GEMV → GEMM)
batching은 여러 request를 한 decoding iteration에 함께 돌리는 것이다. FC operator는 모든 request가 같은 weight 행렬을 쓰므로 request 여러 개의 GEMV가 GEMM 하나로 합쳐진다 §II-B p.3. attention operator는 현재 token의 query vector를 같은 request의 이전 token key 들과 곱하므로 KV cache를 자주 읽고, large batch에서는 KV cache를 읽는 memory traffic이 bottleneck이 될 수 있다 §II-B p.3. request마다 KV cache가 달라 batch로 묶어도 request 별 GEMV로 남는다는 설명은 요약자의 해석이다 해석.1.5arithmetic intensity와 roofline
arithmetic intensity · roofline
arithmetic intensity는 memory에서 1 byte를 읽을 때 연산을 몇 번 하는지(FLOPs/Byte)다. arithmetic intensity가 작으면 memory 대역폭이 성능을 정하고(memory-bound), 크면 연산기가 정한다(compute-bound). roofline은 x 축에 intensity, y 축에 달성 성능을 놓고 두 한계를 선으로 그린 그림이다 논문에 없음.1.6PIM chip과 SADDLE PIM device
PIM chip (HBM-PIM) · SADDLE PIM device
PIM은 memory 안에 PE를 두고 memory-bound operator를 맡겨, bank-level 병렬성으로 높은 내부 대역폭을 쓰고 최종 결과만 옮겨 data 이동을 줄인다 §II-C p.4. SADDLE의 PIM chip은 상용 HBM-PIM 구조를 따른 HBM stack이고, bank마다 PE 하나를 붙인다 §IV-A p.6. 평가의 PIM baseline 구성(HBM stack 40 개)은 내부 대역폭이 144 TB/s로 DGX A100의 memory 대역폭(16 TB/s)의 9 배다 §V-A p.9.1.7pipeline parallelism과 micro-batch
pipeline parallelism · micro-batch
PIM device를 $S$ 개 group으로 나누고, 모델 layer를 $S$ 개 pipeline stage에 하나씩 맡긴다. batch를 $S$보다 조금 많은 micro-batch로 나눠 흘려 보내 모든 pipeline stage가 동시에 서로 다른 micro-batch를 처리하게 한다 §IV-B p.6.2문제: 고정 draft length에서 batch size가 크면 throughput이 떨어진다
1 절에서 speculative decoding은 accept 되는 draft token이 많을수록 iteration 하나에서 얻는 token이 늘고, batching은 request를 묶어 throughput을 올린다고 했다. 2 절은 두 방법을 함께 쓰는 기존 PIM-enabled heterogeneous system에서 batch size를 키우면 throughput이 어떻게 되는지(Fig.3), 원인이 무엇인지(Fig.4), 원인을 고치려 할 때 어떤 새 문제가 생기는지(Fig.5·6)를 순서대로 본다 논문에 없음.
동기 실험(SpecPIM, OPT-66B+OPT-1.3B, $d=8$)에서 batch size 64부터 throughput이 baseline 아래로 떨어졌다. 논문은 원인을 고정 draft length로 보고, $d$가 길면 rejected token이 늘고 짧으면 verification이 잦아져 TLM 병렬성이 준다고 쓴다 §III-A p.4.
optimal draft length는 task·speculative decoding iteration·모델 쌍마다 달라, batch의 모든 request에 같은 $d$를 쓰면 낭비가 남는다고 논문은 쓴다 §III-A p.4–5.
"While such redundant computation may be tolerable under small batch sizes, it becomes increasingly detrimental as the batch size grows—consuming valuable hardware resources that could otherwise be used for effective inference"§I p.2
Fig.4는 optimal draft length가 task·iteration·모델 쌍마다 달라 request마다 $d$를 실행 중에 정해야 한다는 근거다. 그러나 request마다 $d$를 다르게 두면 Fig.5(b)의 bubble과 Fig.6의 operator intensity 변화라는 새 문제 두 가지가 생긴다고 논문은 쓴다 §III-B p.5. 3 절의 부품 셋은 draft length 결정·bubble·intensity 변화 세 가지(draft length 결정, bubble, intensity 변화)에 하나씩 대응한다 해석.
Fig.5 · Fig.6 — request마다 $d$를 바꾸면 생기는 새 문제 두 가지
3기법: SADDLE의 세 부품
2 절은 고정 $d$의 낭비(Fig.3·4), request 별 $d$가 만드는 bubble(Fig.5b), operator intensity 변화(Fig.6)라는 세 문제를 보였다. 그래서 SADDLE은 세 문제에 하나씩 대응하는 부품 셋을 둔다 Abstract p.1 §I p.2.
① Controller가 request마다 $H_t$를 계산해 $H_t < \tau$이면 draft를 멈춰, reject 될 가능성이 큰 draft token의 생성·verification을 줄인다 §IV-C p.7–8. ② Shared Pool과 Eager Pool로 prediction stage와 verification stage를 떼어 idle time을 줄인다 §IV-C·D p.8.
③ Scheduler가 effective micro-batch size와 request 별 draft token 수로 arithmetic intensity를 추정해 DLM FC·TLM attention을 GPU 또는 PIM에 다시 배치한다 §IV-E p.9.
3.1① adaptive draft length: $H_t$가 $\tau$ 아래면 멈춘다
Fig.4에서 optimal draft length가 task·iteration·모델 쌍마다 달랐으므로, draft length는 실행 전에 하나로 정할 수 없고 request마다 실행 중에 정해야 한다. 논문은 optimal draft length를 prediction stage 전에 정하기는 어렵지만, 생성한 draft token의 누적 확률을 보며 추정할 수 있다고 쓴다 §IV-C p.7.
논문은 확률이 낮은 token이 나오면 $H_t$가 떨어져 draft가 일찍 멈추고, reject 될 가능성이 큰 token에 대한 연산을 피한다고 쓴다 §IV-C p.8. 결과적으로 확률이 높은 token을 내는 쉬운 request는 draft length가 길고, 어려운 request는 짧아진다 §IV-C p.8. Controller는 softmax unit·곱셈기·비교기를 갖춰 draft 중단 판단을 hardware로 한다 §IV-C p.8.
$\tau$는 어떻게 정하나
$\tau$는 실제 입력 sequence로 만든 validation set에서 offline으로 정한다. request마다 prediction–verification pipeline 전체를 돌려 draft step $j$마다 $H_j$와 verification 결과를 기록하고, $H_j$에 대한 조건부 성공률 곡선에서 verification 성공률 90% 이상을 지키며 평균 draft length가 가장 긴 20% 구간을 찾는다. 찾은 20% 구간 안에서 grid search로 $\tau$를 고른다 §IV-C p.8.
논문은 부하가 가벼울 때 실행 중 $\tau$를 낮춰 더 긴 draft를 허용할 수 있다고 쓴다 §IV-C p.8. 얼마나, 어떤 규칙으로 낮추는지와 $\tau$ 조정의 효과는 원문에 없다.
3.2② Shared Pool · Eager Pool: prediction stage와 verification stage를 떼어 놓는다
① 로 request마다 draft length가 달라지면, draft를 일찍 멈춘 request는 가장 긴 request의 draft가 끝날 때까지 verification을 기다린다(Fig.5b) §IV-C p.8. 그래서 논문은 verification을 micro-batch 단위로 바로 하지 않고 여러 micro-batch의 draft token을 Shared Pool에 모으며, Shared Pool이 만든 새 문제(draft가 일찍 끊김)는 Eager Pool로 다룬다 §IV-C·D p.8.
Fig.11 — 논문의 timeline 그림, pool 세부
- 3.2.3
- 3.2.3.1Shared Pool은 CAM(Content Addressable Memory)으로 만든다 §IV-C p.8. 실험 설정은 Shared Pool 1 KB, Eager Pool 1 KB(micro-batch 수로 나눔)로 각 pool이 최대 512 token을 담고, logit·누적 확률용 SRAM이 1 KB다 §V-A p.9.
- 3.2.3.2SADDLE Manager는 greedy로 모든 request 중 verification을 통과할 가능성이 가장 높은 draft token부터 verification에 넣는다. 논문은 greedy 정책이 draft가 지나치게 긴 request 하나가 micro-batch 전체의 verification을 늦추지 않게 한다고 쓴다 §IV-C p.8.
- 3.2.3.3두 pool 사이 이동은 on-chip memory 연산이라 성능 overhead가 무시할 만하다고 논문은 쓴다 §IV-D p.8. pool의 draft token은 verification마다 새로 채워지므로 두 pool 모두 약 1 KB 면 된다고 쓴다 §IV-D p.8–9.
3.3③ arithmetic intensity-aware operator scheduling
① 과 ② 를 넣으면 draft length와 아직 draft 중인 request 수(effective micro-batch size)가 실행 중에 계속 바뀌고, Fig.6처럼 operator의 arithmetic intensity가 PIM-benefit과 GPU-benefit 경계를 넘나든다 §IV-E p.9. 그래서 실행 전에 한 번 정한 operator mapping 대신, Scheduler가 실행 중에 intensity를 추정해 mapping을 바꾼다.
| operator | mapping | 논문이 든 이유 |
|---|---|---|
| 3.3.1.1DLM attention | PIM 고정 | DLM은 iteration마다 request 당 token 하나를 만들어 attention의 arithmetic intensity가 낮다 §IV-E p.9 |
| 3.3.1.2TLM FC | GPU 고정 | verification 전에 Shared Pool로 token을 모으므로 FC가 계속 compute-bound다 §IV-E p.9 |
| 3.3.1.3DLM FC | 동적 | 매 prediction 뒤 effective micro-batch size가 바뀌면 intensity가 바뀐다 §IV-E p.9 |
| 3.3.1.4TLM attention | 동적 | Shared Pool의 request 별 draft token 수에 따라 intensity가 바뀐다 §IV-E p.9 |
Scheduler는 매 prediction 뒤 추가 DLM iteration을 할 request를 세어 effective micro-batch size를 정하고, effective micro-batch size로 DLM FC의 arithmetic intensity를 근사한다. verification stage 전에는 Shared Pool에서 request 별 draft token 수를 세어 TLM attention의 intensity를 추정한다. 두 intensity 추정값을 미리 재 둔 threshold(PIM compute-bound, GPU memory-bound)와 비교해 GPU·PIM 중 하나로 보낸다 §IV-E p.9. 초기 mapping은 system의 평균 workload profile로 정한다 §IV-E p.9.
논문은 SpecPIM 식 offline 분석을 실행 중 다시 돌리는 비용이 remapping 이득보다 클 수 있다고 쓴다 §II-C p.4. SADDLE의 threshold 비교가 그보다 가볍다는 것은 요약자의 해석이며, 원문에 remapping 비용 수치는 없다 해석.
Fig.9 · Fig.10 — weight·KV cache를 bank에 어떻게 나눠 두나
4구현과 실험 설정
3 절의 부품 셋은 새 hardware(PE가 붙은 HBM, SADDLE Manager)를 전제하므로, 5 절의 수치를 읽기 전에 어떤 simulator·모델·baseline·hardware 구성에서 잰 값인지 먼저 정한다 논문에 없음.
실제 chip이 아니라 Ramulator2와 AttAcc를 고친 cycle-accurate simulator로 GPU system과 SADDLE의 성능·energy를 평가했다. SADDLE은 SADDLE PIM device 8 개(각 A100 1 개 + PIM chip 5 개, 80 GB)를 쓰고, 모든 비교 system의 memory 용량을 640 GB로 맞췄다 §V-A p.9.
PE는 Synopsys Design Compiler 28 nm·1 GHz로 합성하고 area를 DRAM 공정으로 환산했다 §V-A p.9–10. 2 절 동기 실험의 SpecPIM 구성(A100 4 개)은 평가의 PIM-SD 구성(A100 8 개)과 다르다 §III-A p.4 §V-A p.9.
모델 · baseline · hardware 표
| system | 구성 | 근거 |
|---|---|---|
| 4.2.1GPU-AD | DGX A100 (A100 8 개, 640 GB, 합산 memory 대역폭 16 TB/s), DeepSpeed Inference, TLM으로 autoregressive decoding | §V-A p.9 |
| 4.2.2GPU-SD | 같은 GPU system에서 speculative decoding | §V-A p.9 |
| 4.2.3PIM-AD | AttAcc의 HBM-PIM 구조. A100 8 개 + HBM stack 40 개(각 16 GB, 합 640 GB, 내부 대역폭 144 TB/s). attention은 PIM, FC는 GPU. TLM으로 autoregressive decoding | §V-A p.9 |
| 4.2.4PIM-SD | PIM-AD와 같은 hardware에서 speculative decoding. SpecPIM의 mapping 전략대로 초기 batch size·최대 sequence length로 실행 전 design-space 탐색을 한다 | §V-A p.9 |
| 4.2.5SADDLE | SADDLE PIM device 8 개 × (A100 1 개 + NVLink로 연결한 HBM3 PIM chip 5 개, 각 16 GB, 5.2 Gbps/pin) | §V-A p.9 |
| 4.2.6workload | Dolly dataset(수천 명의 직원이 만든 open-source instruction-following dataset, InstructGPT의 behavior category 여러 개에 걸침), batch size 16–128, 대부분 실험의 최대 sequence length 1024 (OPT-175B는 memory 제약으로 512) | §V-A p.9 |
| 4.2.7interconnect · 대역폭 | host와 SADDLE PIM device 사이는 고속 interconnect(원문 예: CXL, NVLink). SADDLE PIM device 안 내부 대역폭 2 TB/s, device 사이 대역폭 600 GB/s. host CPU 종류·host memory·PCIe 세대는 원문에 명시가 없다 | §IV-A p.5, §V-E p.11 |
| 4.2.8simulator · energy | Ramulator2와 AttAcc를 고친 cycle-accurate simulator가 system 구성과 모델 사양을 받아 system 별 실행 시간과 energy를 낸다. HBM energy는 선행 연구의 activation·read energy 값을 쓴다. pipeline stage 수 $S$·micro-batch 수, sampling 설정은 원문에 명시가 없다 | §V-A p.9–10 |
5평가
2 절의 문제는 큰 batch size에서 speculative decoding의 throughput이 떨어지는 것이었으므로, 5 절은 4 절의 설정에서 batch size를 16–128로 키웠을 때 SADDLE이 앞서는지(Fig.12·13), 이득이 어느 부품에서 왔는지(Fig.14·19), 어디서 시간이 줄었는지(Fig.16–18)를 본다 논문에 없음.
세 모델 쌍 × batch size 16·32·64·128 모든 조합에서 SADDLE의 throughput이 가장 높고, 평균으로 GPU-AD 대비 3.36×, GPU-SD 2.88×, PIM-AD 1.94×, PIM-SD 1.71×다 §V-B p.10.
batch size가 커지면 GPU-SD·PIM-SD의 GPU-AD·PIM-AD 대비 이득은 줄거나 뒤집히지만 SADDLE은 앞선다. 논문은 원인으로 adaptive draft length, cross-micro-batch verification, 동적 operator mapping 셋을 든다 §V-B p.10.
논문은 세 가지를 든다. request마다 draft token 수를 조절해 고정 draft length의 낭비 연산을 줄였고(큰 batch size에서 두드러짐), cross-micro-batch verification으로 prediction과 verification 사이 pipeline stall을 "eliminating" 해 DLM과 TLM을 병렬로 돌렸으며, operator를 arithmetic intensity와 대역폭 요구에 따라 GPU·PIM에 배치했다 §V-B p.10. 다만 Shared Pool만 넣은 SADDLE-p는 DLM과 TLM을 여전히 순차로 실행하고 §V-C p.11, 두 단계를 겹치는 것은 Eager Pool이다 §IV-D p.8. Fig.11에도 TLM이 노는 Idleness 구간이 남아 있으므로, 실제로는 stall을 없앤 것이 아니라 줄인 것으로 읽어야 한다 해석.
Fig.13 — energy efficiency
Fig.15 — sequence length · 작은 batch size 민감도
Fig.17 · Fig.18 · Fig.19 — 통신 비용, hardware 사용률, operator scheduling 효과
area overhead
| 항목 | 값 | 근거 |
|---|---|---|
| 5.9.1DRAM die 당 추가 area | 16.24 mm² (121 mm² HBM3 die의 13.4%) | §V-F p.12 |
| 5.9.2buffer die 당 추가 area (7 nm) | 1.62 mm² (softmax 1.44 + accumulator 0.18) | §V-F p.12 |
| 5.9.3PE · accumulator (1z-nm DRAM 공정) | 0.116 mm² · 0.044 mm² | §V-F p.12 |
| 5.9.4pCH 당 구성 | PE 16 + accumulator 4 | §V-F p.12 |
6결론과 한계
5 절의 수치는 모두 simulator·Dolly 한 dataset·batch size 16–128이라는 4 절의 조건에서 나왔다. 그래서 6 절은 논문의 결론을 옮긴 뒤, 4 절 조건 밖에서 결론이 유지되는지 확인되지 않은 부분을 한계로 정리한다 논문에 없음.
논문의 결론은 누적 확률 기반 draft length 조절, DLM과 TLM을 떼어 놓는 asynchronous pipeline, arithmetic intensity 기반 operator scheduling으로 평균 throughput을 GPU-only 대비 2.88×, 기존 PIM-enabled speculative decoding system 대비 1.71× 올렸다는 것이다 §VII p.13.
논문에 limitation 절은 없다. 아래는 요약자가 정리한 한계다 논문에 없음.
| 한계 | 근거 |
|---|---|
| 6.1.1실제 chip이 아니라 simulator 결과다. GPU system도 같은 simulator로 평가했다 | §V-A p.9 |
| 6.1.2평가 dataset은 Dolly 하나다(contribution은 "diverse ... datasets"라 씀). $\tau$는 validation set으로 offline에 정하므로 다른 도메인·모델 쌍에서는 다시 맞춰야 할 수 있다 | §I p.2, §IV-C p.8, §V-A p.9 |
| 6.1.3실행 중 부하에 따라 $\tau$를 낮출 수 있다고 했지만 규칙과 효과는 평가하지 않았다 | §IV-C p.8 |
| 6.1.4greedy로 통과 가능성이 높은 draft token부터 verification 하므로 어려운 request가 밀릴 수 있다. request 별 latency·fairness는 보고하지 않았다 | §IV-C p.8. 평가는 throughput·energy·end-to-end latency |
| 6.1.5Eager Pool은 verification 중인 draft token이 모두 accept 된다고 가정한다. reject 되면 verification 중에 만든 draft token을 버리며, 버린 draft token의 비율은 따로 재지 않았다 | §IV-D p.8 |
| 6.1.6draft는 작은 모델 하나(DLM)가 만드는 방식만 다룬다. Disco·OPT-Tree 같은 adaptive drafting 알고리즘은 직교·상보적이라 SADDLE에 넣을 수 있다고만 쓰고 비교하지 않았다 | §VI p.12–13 |
| 6.1.7PIM 전력은 "가정한 thermal design envelope 안" 이라고만 했고 수치를 주지 않았다 | §V-B p.10 |
7관련 연구
6 절의 한계 중 하나는 다른 adaptive drafting 알고리즘과 비교하지 않았다는 것이다. 7 절은 SADDLE이 PIM-enabled heterogeneous system 연구와 adaptive draft length 연구 두 갈래 중 어디에 서 있는지를 논문 §VI 기준으로 정리한다 논문에 없음.
PIM-enabled heterogeneous system(AttAcc, IANUS, SpecPIM, PAPI)은 operator를 GPU·PIM에 나누지만, 논문은 PIM-enabled heterogeneous system에서 adaptive draft length를 처음 쓴 것이 SADDLE이라고 주장한다 §I p.2.
adaptive draft length 연구(Disco, OPT-Tree)는 단일 request에서 latency를 줄였고, SADDLE은 adaptive drafting을 batching과 결합해 large batch throughput을 높인다 §VI p.12–13.
| 연구 | 한 일 | SADDLE과 차이 |
|---|---|---|
| 7.1.1A3 · SpAtten · Sanger · ELSA · DOTA | ASIC으로 attention 연산을 sparsification·quantization 등으로 줄임 | attention만 다뤄 큰 batch size에서 end-to-end 가속이 어렵다고 논문은 쓴다 (§VI p.12) |
| 7.1.2AttAcc | attention을 HBM-PIM에, FC는 GPU에 | autoregressive decoding 가속. 평가의 PIM baseline과 SADDLE simulator의 바탕 (§II-C p.4, §V-A p.9) |
| 7.1.3NeuPIM · IANUS | NPU + PIM, dual-buffering · PIM-aware scheduling | speculative decoding 용이 아니다. 논문은 SpecPIM이 speculative decoding 용 첫 PIM-enabled heterogeneous system이라고 쓴다 (§II-C p.4) 해석 |
| 7.1.4SpecPIM | speculative decoding 용 PIM-enabled heterogeneous system. genetic algorithm·MCTS로 offline mapping | $d$ 고정, 실행 중 적응 없음. 평가의 PIM-SD가 SpecPIM의 mapping 전략을 쓴다 (§VI p.12, §V-A p.9) |
| 7.1.5PAPI | batch size 변화에 따라 GPU·PIM 사이 operator 재배치 | TLM 하나만 대상으로 하고 DLM–TLM 순차 실행의 idle time을 다루지 않는다 (§II-C p.4) |
| 7.1.6TransPIM · CENT | PIM 만으로 transformer inference | compute-bound FC layer 가속이 부족하다 (§VI p.12) |
| 7.1.7Disco · OPT-Tree | classifier로 draft 중단 결정 · 주어진 node 예산에서 draft tree 탐색 | 단일 request latency를 줄였다. SADDLE은 추가 학습 없는 $H_t$ 방식을 batching과 결합했다 (§VI p.12–13) |
background figure (Fig.1 · Fig.2)
8세미나 발표 대본 (약 18 분)
1~7 절은 읽는 사람이 찾아보는 순서로 썼으므로, 발표에서는 논문 그림 순서대로 질문을 이어 가는 대본을 따로 둔다. Fig.1~19와 Table I을 원 caption·쪽과 함께 놓고, 그림마다 앞 그림이 남긴 질문에서 출발해 다음 그림으로 넘기는 발화를 적었다. Table I은 원문 p.10에 있지만 평가 전 실험 환경에서 다룬다.
발화문은 요약자가 쓴 것이고 논문에 없음, 수치와 주장은 원문에서 확인한 것만 넣었다. caption 끝의 시간은 권장 분량이며 합계 약 18 분 30 초다.