HPCA 2026 · Wang et al. (HUST · UNSW) · DOI 10.1109/HPCA68181.2026.11408598

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.1 micro-batch #0 micro-batch #1 DLM DLM Draft Generator Draft Generator Eager Pool Controller Eager Pool Controller Shared Pool TLM verification 1 1 2 2 3 3 4 5 5 6 6
DLM (prediction stage)TLM (verification stage)Shared Pool (모든 micro-batch 공용)Eager Pool (micro-batch마다)점선 화살표 = accept 된 경우만
0.1.cdraft token 하나가 지나는 길이다. micro-batch마다 Draft Generator(Controller + Eager Pool)가 하나씩 있고, Shared Pool과 Scheduler는 SADDLE Manager에 하나씩 있다 §IV-A p.6. 그림의 micro-batch 2 개와 배치는 예시다 논문에 없음.
0.2
번호일어나는 일근거
0.2.11Controller가 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.33verification 중이면 새 draft token은 Eager Pool에 잠시 둔다§IV-A p.6, §IV-D p.8
0.2.44Shared Pool의 token 수가 GPU의 parallel verification capacity $C$에 닿거나 GPU가 idle이면 모두 TLM으로 보내 verification 한다§IV-C p.8
0.2.55request의 이전 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
0.3 GPU PIM TLM FC DLM attention DLM FC ◀▶ TLM attention ◀▶
DLM의 operatorTLM의 operator채운 상자 = 고정 mapping점선 ◀ ▶ = 실행 중 GPU 또는 PIM으로 결정
0.3.cScheduler는 DLM attention을 PIM에, TLM FC를 GPU에 고정한다. DLM FC와 TLM attention은 실행 중 arithmetic intensity를 추정해 threshold와 비교한 뒤 GPU 또는 PIM으로 보낸다 §IV-E p.9. 그림 논문에 없음.
0.4
0.4.1기 상황
speculative decoding에서 DLM은 draft token을 하나씩 만드는 memory-intensive GEMV를, TLM은 draft token 여러 개를 한 번에 verification 하는 compute-intensive GEMM을 수행한다 §I p.1. 그래서 기존 연구는 GPU 같은 xPU와 PIM을 함께 쓰는 PIM-enabled heterogeneous system에서 operator를 정적으로 나눠 맡겼다 §I p.1–2.
0.4.2승 문제
SpecPIM 동기 실험(A100 4 개, A100마다 HBM-PIM 5 개, OPT-66B+OPT-1.3B, Dolly)에서 $d=8$이면 batch size 64부터 baseline(같은 hardware에서 OPT-66B autoregressive decoding)보다 throughput이 낮았다. batch size 64에서는 $d=4$가 가장 좋았지만(baseline 대비 1.41×), 논문은 모든 request에 같은 $d$를 쓰는 한 낭비가 남는다고 쓴다 §III-A p.4.
0.4.3전 기법
① Controller가 $H_t < \tau$인 request의 draft를 멈춘다 §IV-C p.7. ② Shared Pool이 여러 micro-batch의 draft token을 모아 verification 하고, Eager Pool이 verification 중에 DLM이 만든 draft token을 받는다 §IV-C·D p.8. ③ Scheduler가 DLM FC·TLM attention의 arithmetic intensity를 추정해 GPU·PIM 중 하나에 보낸다 §IV-E p.9.
0.4.4결 결과
cycle-accurate simulator, 모델 쌍 셋(OPT-66B+OPT-1.3B, OPT-175B+OPT-6.7B, Llama-3.1-70B+Llama-3.2-1B), Dolly, batch size 16–128 평균으로 throughput은 GPU-SD 대비 2.88×, PIM-SD 대비 1.71×이고, energy efficiency는 PIM-SD 대비 1.45×다 §V-A·B p.9–10.
0.5보강 논리 사슬: 논문은 adaptive draft length가 새 문제 둘(bubble, operator intensity 변화)을 만든다고 보고, 나머지 부품(Shared Pool·Eager Pool, operator scheduling)을 두 문제의 해법으로 제시한다 Abstract p.1. Eager Pool은 Shared Pool이 만든 문제(draft가 일찍 끊김)를 푼다 §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 단계로 펼쳐 보기 (주장 → 근거)
  1. 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.
  2. 그런데 $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.
  3. $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.
  4. 그래서 누적 확률 $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.
  5. 그런데 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.
  6. 그래서 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.
  7. 그런데 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.
  8. 가변 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.
  9. 세 부품을 합친 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.
0.6보강 맨 끝에 8 절 "세미나 발표 대본 (약 18 분)"을 새로 넣었다. Fig.1~19와 Table I을 원 caption과 함께 순서대로 놓고, 그림마다 앞 그림이 남긴 질문에서 출발하는 발화를 붙였다 논문에 없음.
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 보강".
0.7
0.7.1
2.88×
throughput, GPU-SD 대비 (세 모델 쌍 · batch size 16–128 평균)
0.7.2
1.71×
throughput, PIM-SD 대비 (같은 조건 평균)
0.7.3
1.45×
energy efficiency, PIM-SD 대비 (같은 조건 평균)
0.7.4
0.83%
monitoring·decision-making이 SADDLE end-to-end latency에서 차지하는 비율 (Fig.16, batch size 16–128)

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
용어정확한 뜻 (요약 문서에서)기호논문 원문 표기
1.1.1.1DLM · TLMDLM = 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 tokenDLM이 만든 후보 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 stageDLM이 draft token을 만드는 단계 · TLM이 한 번에 검사하는 단계–"prediction", "drafting", "verification" (§II-B p.3)
1.1.1.4speculative decoding iteration · drafting iterationprediction 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 rateaccepted 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 sizerequest = 사용자 요청 하나(sequence 하나), batch = 함께 처리하는 request 묶음, batch size = batch의 request 수–"the number of concurrent requests (i.e., batch size)" (§I p.2)
1.1.1.11micro-batchpipeline 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 sizedraft 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 stagePIM device를 $S$ 개 group으로 나누고 group마다 모델 layer 일부를 맡긴 단위$S$"S pipeline stages" (§IV-B p.6)
1.1.1.14bubbleDLM 또는 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 Managerdraft 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 · Controllermicro-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 Poolverification 중에 DLM이 계속 만든 draft token을 잠시 두는 buffer. micro-batch마다 하나–"Eager Pool" (§IV-D p.8). 평가 절은 "eager pool"로 소문자 표기
1.1.1.19SchedulerDLM 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.21layerdecoder 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-boundmemory에서 읽은 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.24GPUcompute-intensive operator를 맡는 processor. SADDLE 논문의 설계·평가에서는 NVIDIA A100–일반 서술은 "xPU"(GPU, TPU 등), device 안에서는 "centralized processor" (§I p.1, §IV-A p.6)
1.1.1.25PIMmemory bank마다 PE를 붙여 memory 안에서 계산하는 processing-in-memory–"PIM units", "PIMs" (§I, §IV-E)
1.1.1.26PIM chipHBM-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 deviceGPU 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 · PEDRAM 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 · SFUaccumulator = 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-SDSpecPIM = 동기 실험의 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-ADAD = 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 · -sablation 변형. -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

1.2.1

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

1.3.1

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.3.2 DLM: draft token 5 개 (d = 5) the cat sat in the TLM verification 결과 the cat sat on the ✗ in → on버림 ✓✓✓
draft tokenaccepted tokenTLM이 고친 tokenrejected token 뒤라 버린 draft token
1.3.2.c앞 3 개가 accept 되고 "in"이 reject 되어 TLM이 "on"으로 고친다. 예시의 speculative decoding iteration에서 token 4 개를 얻고, "in"·"the" 두 draft token의 생성·verification 연산은 버려진다. 문장은 예시다 논문에 없음.
논문은 rejected token의 생성·verification 연산이 batch size가 클수록 유효한 inference에 쓸 hardware 자원을 차지해 throughput을 떨어뜨린다고 쓴다 §I p.2.

1.4draft length와 batching

1.4.1

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.
1.4.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.4.3 FC operator: 모든 request가 같은 W W × GEMV B 번 → W × GEMM 1 번 (B 열) attention operator: request마다 다른 KV cache K₁× K₂× K₃×
공유 weight 행렬 Wrequest 별 activation 또는 query vectorrequest 별 key 행렬 (KV cache)
1.4.3.cFC operator는 batch size $B$ 만큼의 vector를 한 행렬로 묶어 GEMM 한 번으로 계산한다 §II-B p.3. attention operator는 request마다 key 행렬이 달라 GEMM 하나로 묶이지 않는다 해석. 그림 논문에 없음.
speculative decoding은 token 단위 병렬성, batching은 request 단위 병렬성을 주며 §II-B p.3, SADDLE은 큰 batch size의 speculative decoding을 다룬다 §VI p.12.

1.5arithmetic intensity와 roofline

1.5.1

arithmetic intensity · roofline

arithmetic intensity는 memory에서 1 byte를 읽을 때 연산을 몇 번 하는지(FLOPs/Byte)다. arithmetic intensity가 작으면 memory 대역폭이 성능을 정하고(memory-bound), 크면 연산기가 정한다(compute-bound). roofline은 x 축에 intensity, y 축에 달성 성능을 놓고 두 한계를 선으로 그린 그림이다 논문에 없음.
1.5.2 성능 intensity (FLOPs/Byte) → PIM GPU PIM 유리 GPU 유리 경계
PIM: 기울기(내부 대역폭)는 크고 천장(연산 성능)은 낮다GPU: 기울기는 작고 천장은 높다경계 = GPU 기울기가 PIM 천장과 만나는 intensity
1.5.2.c경계보다 왼쪽 intensity의 operator는 PIM이, 오른쪽은 GPU가 더 빠르다. Fig.6의 빨간 점선이 roofline 그림의 경계에 해당한다 해석. 선의 모양은 개념도이며 수치가 아니다 논문에 없음.
draft length와 effective batch size가 바뀌면 operator의 intensity가 경계를 넘나들어, GPU·PIM 중 더 빠른 쪽이 바뀐다 §III-B p.5.

1.6PIM chip과 SADDLE PIM device

1.6.1

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.6.2 SADDLE PIM devicePIM chipDRAM die pCHBGbankbuffer die GPU + router + PIM chipbuffer die + DRAM die ×8pCH ×8 BG ×4 + accumulator ×4bank ×4SFU (softmax 등) PE ×1 →→→→→→→
1.6.2.cSADDLE PIM device 하나는 GPU, router, PIM chip 여러 개로 이뤄지고, PIM chip은 buffer die 1 장 위에 DRAM die 8 장을 쌓는다. DRAM die에 pCH 8 개, pCH에 BG 4 개, BG에 bank 4 개가 있고 bank마다 PE가 하나다 §IV-A p.6. pCH 당 accumulator는 4 개다 §V-F p.12. PE는 FP16 곱셈기 16 개·덧셈기 16 개로 cycle마다 256-bit operand 두 개(bank row buffer와 pCH global buffer)를 처리한다 §IV-A p.6. 그림 논문에 없음.
기존 system은 memory-intensive operator를 PIM에, compute-intensive operator를 GPU에 정적으로 보낸다 §I p.1–2. SADDLE은 DLM attention을 PIM, TLM FC를 GPU에 고정하고 DLM FC·TLM attention은 실행 중 정한다 §IV-E p.9.

1.7pipeline parallelism과 micro-batch

1.7.1

pipeline parallelism · micro-batch

PIM device를 $S$ 개 group으로 나누고, 모델 layer를 $S$ 개 pipeline stage에 하나씩 맡긴다. batch를 $S$보다 조금 많은 micro-batch로 나눠 흘려 보내 모든 pipeline stage가 동시에 서로 다른 micro-batch를 처리하게 한다 §IV-B p.6.
1.7.2 시간 → stage 0 stage 1 #0 #1 #2 #0 #0 #1 #2
1.7.2.c#n은 micro-batch n이다. pipeline stage 2 개에 micro-batch 3 개를 흘리면 첫 칸 이후로는 두 stage가 동시에 다른 micro-batch를 처리한다. stage·micro-batch 수는 예시다 논문에 없음.
SADDLE Manager는 micro-batch마다 Draft Generator를 하나씩 두고 §IV-A p.6, 여러 micro-batch의 draft token을 Shared Pool에 모아 한 번에 verification 한다 §IV-C p.8.

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.

2.1 Fig.3
2.1.cFig. 3: Inference throughput of SpecPIM (OPT-66B+OPT-1.3B) versus the baseline (OPT-66B) under (a) varying batch sizes (draft length = 8) and (b) varying draft lengths (batch size = 64). Throughput is normalized to the baseline. SpecPIM’s throughput peaks at d = 4, but degrades with longer drafts due to increased token rejection and wasted computation. (p.4) 두 패널 모두 SpecPIM(A100 4 개, A100마다 HBM-PIM 5 개), Dolly에서 잰 throughput이고, 초록 막대는 같은 hardware에서 OPT-66B 만으로 autoregressive decoding 한 baseline, 파란 막대는 OPT-66B+OPT-1.3B speculative decoding이다 §III-A p.4. (a)는 $d=8$로 고정하고 x 축 batch size를 8 → 128로 바꾼 그림이다. speculative decoding은 batch size 8·16·32에서 baseline보다 높고 64·128에서 낮다. (b)는 batch size 64로 고정하고 x 축 draft length를 2 → 12로 바꾼 그림이다. $d=4$가 가장 높고(본문 baseline 대비 1.41×), $d=8$·12는 baseline 아래이며, $d=2$는 $d=4$보다 1.12× 낮다 §III-A p.4. (a)는 baseline 막대도 1에서 약 3.3으로 오르므로 batch size 8의 baseline throughput을 1로 둔 값으로, (b)는 draft length마다 baseline을 1로 둔 값으로 읽힌다. (b)의 $d=4$ 막대를 재면 약 1.33으로 본문의 1.41×와 다르다 해석.
"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
2.2 Fig.4
2.2.cFig. 4: (a) Token acceptance rates of the OPT-66B + OPT-1.3B model pair across three task categories in the Dolly dataset under different fixed draft lengths. (b) Per-iteration distribution of accepted tokens during speculative decoding for each task category using OPT-66B + OPT-1.3B. (c) Same as (b) using LLaMA3-70B + LLaMA3-1B. The results reveal dynamic and task-specific variations in optimal draft lengths across iterations and model pairs. (p.4) Fig.3(b)에서 $d=4$가 가장 좋았으므로, Fig.4는 $d$ 하나를 잘 고르면 충분한지를 본다. 세 패널 모두 Dolly의 세 task를 색으로 나눈다(파랑 summarization, 주황 open_qa, 초록 creative_writing, 그림 표기는 "creating_writing"). (a)는 OPT-66B+OPT-1.3B에서 x 축 draft length(4·8·12)에 따른 y 축 acceptance rate(DLM이 만든 draft token 중 TLM이 accept 한 비율)다. $d$를 4 → 8 → 12로 늘리면 세 task 모두 acceptance rate가 떨어진다 §III-A p.4. (b)는 같은 모델 쌍에서 x 축 speculative decoding iteration 번호(1·4·8·12·16·20)마다 y 축 "No. of accepted tokens", 즉 해당 iteration에서 TLM이 accept 한 draft token 수다. task마다 iteration 별 accepted token 수가 크게 다르다. creative_writing은 첫 iteration 5 개에서 12 번째 iteration 1 개로 준다 §III-A p.5. (c)는 (b)와 같은 축에서 모델 쌍만 Llama3-70B+Llama3-1B로 바꾼 그림이며, 같은 task·iteration의 accepted token 수가 (b)와 달라진다 §III-B p.5. 논문은 (b)(c)의 accepted token 수를 optimal draft length로 읽고, optimal draft length가 task와 모델 선택에 크게 좌우되어 실행 중 모두 탐색할 수 없다고 쓴다 §III-B p.5. (b)(c)가 request 하나의 값인지 task 평균인지는 원문에 명시가 없다. 본문은 (c)를 DLM 교체로 설명하지만 그림 제목상 TLM도 바뀐다 해석.

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$를 바꾸면 생기는 새 문제 두 가지
2.3 Fig.5
2.3.cFig. 5: Inefficiencies in speculative decoding pipeline designs: (a) Fixed draft lengths lead to wasted computation when draft tokens are later rejected by the TLM (marked by X); (b) A naive realization of adaptive draft length introduces pipeline bubbles due to synchronization delays when requests in the same batch have varying draft lengths. (p.5) 두 패널 모두 가로가 시간, 세로가 같은 batch의 request #0~#3이고, 초록 칸 하나는 DLM이 해당 request의 draft token 하나를 만드는 drafting iteration, 파란 상자는 TLM verification stage다. (a)는 $d$를 고정한 경우로, request #1·#2의 뒤쪽 draft token(빨간 X)이 verification에서 reject 되어 reject된 draft token을 만든 연산이 낭비된다. (b)는 request마다 $d$를 다르게 한 naive 방식으로, verification이 가장 긴 request #0의 draft가 끝나야 시작하므로 #1·#2·#3의 남은 칸이 bubble이 된다 §III-B p.5. (a)의 낭비 연산을 없애려고 (b)로 가면 대기 시간이 새로 생긴다는 것이 두 패널의 관계다 해석.
2.4 Fig.6
2.4.cFig. 6: Roofline analysis of speculative decoding operators on OPT-66B (TLM) + OPT-1.3B (DLM) under varying draft sequence lengths and effective batch sizes. The arithmetic intensity (FLOPs/Byte) and performance (TFLOPS) of the attention and FC operators shift significantly across configurations, highlighting transitions in bottlenecks (PIM compute-bound vs. GPU bandwidth-bound) and the corresponding optimal hardware execution targets. (p.5) x 축은 operator의 arithmetic intensity(FLOPs/Byte), y 축은 operator가 달성한 성능(TFLOPS)이고 둘 다 log 눈금이다. 주황 선은 PIM, 검은 선은 GPU의 roofline으로 읽히며, 빨간 점선 왼쪽이 PIM-benefit, 오른쪽이 GPU-benefit 구간이다 해석. 표식 모양은 operator(원 = attention, 삼각형 = FC), 색은 모델(파랑 = OPT-66B TLM, 노랑 = OPT-1.3B DLM), 채움 농도는 설정(연함 = effective batch size 4·$d$=1, 진함 = 12·8)이다. (effective batch size, $d$)를 (4,1)에서 (12,8)로 바꾸면 TLM attention(파란 원)과 DLM FC(노란 삼각형)는 빨간 점선의 왼쪽(PIM-benefit)에서 오른쪽(GPU-benefit)으로 넘어간다. DLM attention은 두 설정 모두 왼쪽, TLM FC는 두 설정 모두 오른쪽이다 해석. 논문은 $d$가 1 → 8로 늘면 TLM attention에서 GPU가 PIM보다 빨라지고, 12 개 request 중 짧은 8 개가 draft를 끝내 effective batch size가 4로 줄면 DLM FC는 PIM이 유리해진다고 쓰며, 정적 mapping은 비효율이 된다고 결론짓는다 §III-B p.5.

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.0.1 Fig.7
3.0.1.cFig. 7: Overview of the SADDLE computing system, consisting of a host, SADDLE Manager, and multiple SADDLE PIM devices interconnected via high-speed links (e.g., CXL or NVLink). (b) Architecture of a SADDLE PIM device, including a centralized processor (e.g., GPU or TPU), router, and multiple PIM chips. (c) Internal structure of a PIM chip based on the HBM-PIM architecture, showing the pseudo-channel (pCH) with PE-attached banks, global buffer, and accumulator. (d) Datapath architecture of a Processing Element (PE) supporting parallel matrix computations. (e) Specialized functional unit (SFU) for softmax and related operations such as normalization. (p.6) 다섯 패널은 왼쪽에서 오른쪽으로 갈수록 한 단계씩 확대한 그림이다 해석. (a) host, SADDLE Manager, SADDLE PIM device 여러 개가 interconnect(원문 예: CXL, NVLink)로 이어진다. (b) SADDLE PIM device 하나는 centralized processor(SADDLE 설계에서는 GPU), router, PIM chip 여러 개로 이뤄진다. (c)(d) PIM chip의 bank마다 PE가 하나씩 붙어 bank 안에서 곱셈·덧셈을 한다. (e) buffer die의 SFU가 softmax·normalization 같은 비행렬 연산을 맡는다 §IV-A p.5–6.
3.0.2 Fig.8
3.0.2.cFig. 8: Overview of the SADDLE Manager (p.6) micro-batch마다 Draft Generator(Controller + Eager Pool) 하나, SADDLE Manager 전체에 Shared Pool 하나와 Scheduler 하나가 있다. Controller는 request마다 draft length를 정하고, 해당 request의 이전 draft token이 verification 중이 아니면 새 draft token을 Shared Pool에, verification 중이면 Eager Pool에 둔다 §IV-A p.6. §IV-D는 Shared Pool이 가득 차지 않았으면 Eager Pool을 거치지 않는다고 덧붙인다 §IV-D p.8. 0 절의 흐름 그림이 SADDLE Manager 구조를 옮긴 것이다.

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.

3.1.1
$\tau$ = threshold · $H_t$ = drafting iteration $t$ 까지의 누적 확률 · $p_t$ = $t$ 번째 draft token의 DLM 확률 · $x_t$ = DLM 분포에서 $t$ 번째로 sample 한 draft token · $t$ = drafting iteration 번호
$$\begin{aligned} \text{stop if } H_t &< \tau \\ H_t &= \prod_{i=1}^{t} p_i \\ p_t &= P(x_t \mid x_{<t}) \end{aligned}$$§IV-C p.7
맨 위 식이 최종 판단이다. token을 sample 한 뒤 $H_t$가 $\tau$ 아래로 떨어지면 Controller가 해당 request의 draft를 멈춘다. 둘째 식의 $H_t$는 지금까지 sample 한 draft token 들의 DLM 확률 $p_i$를 곱한 값이고, 셋째 식의 $p_t$는 앞 token $x_{<t}$가 주어졌을 때 DLM이 $x_t$에 준 확률이다 §IV-C p.7. $p_i \le 1$이므로 $H_t$는 draft가 길어질수록 줄어든다(원문 "typically decreases"). $H_t$는 DLM 확률만의 곱이고 TLM의 acceptance 확률이 아니다 해석.
3.1.2 Hₜ .950 .855 .787 .472 .415 τ=0.5 t=1t=2t=3t=4t=5
만든 draft token의 $H_t$$H_t < \tau$가 된 drafting iteration만들지 않은 draft token
3.1.2.c$\tau = 0.5$인 예시다. drafting iteration 4에서 $H_4 = 0.472 < \tau$가 되어 Controller가 draft를 멈춘다. $H_4 = p_1 p_2 p_3 p_4 = 0.95 \times 0.9 \times 0.92 \times 0.6$이고, 확률이 낮은 $p_4 = 0.6$이 $H_3 = 0.787$을 $\tau$ 아래로 끌어내렸다. $p_5 = 0.88$ 이었다면 $H_5 = 0.415$ 지만 draft token 5는 만들지 않는다. 멈추게 한 4 번째 draft token을 verification에 넣는지는 원문에 명시가 없다 논문에 없음.

논문은 확률이 낮은 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.

3.1.3
$H_t$ 계산기: $\tau$를 바꾸면 draft가 어디서 멈추는지 보기 논문에 없음
$H_t < \tau$를 만든 draft token도 draft length에 넣어 센다. 원문은 마지막 draft token의 포함 여부를 밝히지 않는다.
$\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.

3.2.1 naive: request마다 d가 다름 (Fig.5b) #0#1#2#3 TLM SADDLE: Shared Pool · Eager Pool DLMTLM TLM TLM 시간 →
DLM이 만든 draft token → Shared Poolverification 중 만든 draft token → Eager Poolbubble (verification을 기다림)TLM idle (Fig.11의 Idleness)
3.2.1.cShared Pool은 여러 micro-batch의 draft token을 모아, 합이 GPU의 parallel verification capacity $C$에 닿거나 GPU가 idle이면 TLM으로 보낸다 §IV-C p.8. 논문은 Shared Pool만으로는 Shared Pool이 빨리 차서, 원문 예로 draft token 5 개를 만들 수 있던 request가 2 개만 만들고 verification으로 넘어간다고 쓴다. 그래서 verification 중인 draft token이 모두 accept 된다고 가정하고 DLM이 계속 draft 하게 하며, verification 중에 만든 draft token은 Eager Pool에 둔다 §IV-D p.8. Fig.11에도 TLM이 노는 구간(Idleness)이 남아 있어 idle time이 0이 되지는 않는다 해석. 그림은 두 방식을 단순화한 것이다 논문에 없음.
Fig.11 — 논문의 timeline 그림, pool 세부
3.2.2Fig.11
3.2.2.cFig. 11. Example execution timelines of synchronous pipeline (p.8) 가로는 시간이다. 위 두 줄은 Device 0·1에서 DLM이 micro-batch #0(연한 파랑)·#1(진한 파랑)의 draft token을 만드는 구간, 맨 아래 줄은 Devices N에서 TLM이 batch 전체(주황, "Single Batch")를 verification 하는 구간, 빗금은 TLM이 노는 구간(Idleness)이다. micro-batch #0·#1의 DLM이 Device 0·1에서 draft token을 Shared Pool(노랑)에 넣는다. Shared Pool이 Locked인 동안 TLM이 verification 하고, verification 중에 만든 draft token은 Eager Pool(초록)에 쌓인다. Unlock 뒤, request의 이전 draft token이 모두 accept 됐으면 같은 request의 Eager Pool draft token이 Shared Pool로 옮겨진다 §IV-D p.8. caption은 "synchronous pipeline"이지만 본문은 Fig.11로 DLM prediction과 TLM verification의 병렬 실행을 설명한다 해석.
    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을 바꾼다.

3.3.1
operatormapping논문이 든 이유
3.3.1.1DLM attentionPIM 고정DLM은 iteration마다 request 당 token 하나를 만들어 attention의 arithmetic intensity가 낮다 §IV-E p.9
3.3.1.2TLM FCGPU 고정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에 어떻게 나눠 두나
3.3.2Fig.9
3.3.2.cFig. 9: Data sharding and execution flow of the decoder. QKV and first FFN layers use column-wise partitioning, while attention projections and second FFN layers use row-wise partitioning. AllReduce consolidates intermediate results to enable parallel execution with minimal communication. (p.7) 왼쪽에서 오른쪽으로 decoder layer 하나의 operator 순서(QKV generation → multi-head attention → projection → FFN)이고, 색 하나가 weight 조각 하나와 해당 조각이 만드는 출력에 대응한다 해석. QKV generation은 attention head 단위로 weight를 나눠, 각 head의 출력을 바로 multi-head attention의 입력으로 쓴다. projection과 FFN 둘째 FC는 partial output을 만들고 AllReduce로 합친다 §IV-B p.7. 그림에는 AllReduce가 projection 뒤와 FFN 뒤에 하나씩 있다 해석. 본문은 QKV generation을 row-wise, projection을 column-wise로 쓰고 caption은 반대로 써서 원문 안에서 방향 표기가 어긋난다 해석.
3.3.3Fig.10
3.3.3.cFig. 10: Mapping strategy for the KV cache. (a) Each attention head is assigned to a specific HBM stack, with heads from different requests potentially sharing the same stack. (b) K⊤ is partitioned column-wise at the pCH and BG levels, and row-wise at the bank level. V is partitioned row-wise at the pCH and BG levels, and column-wise at the bank level. (c) Bank-level layout and dataflow for computing attention: KT and V matrices are partitioned across bank groups and striped across banks to balance load and maximize row buffer reuse and internal memory bandwidth. The q vector is broadcast from the global buffer to all banks in a group for parallel processing. (p.7) 세 패널은 HBM stack → BG·bank → bank 안 계산 순서로 확대한다. (a)는 가로가 request(Req 0~n), 세로가 HBM stack(HBM 0~N)인 표로, attention head 하나를 HBM stack 하나에 두고, 서로 다른 request의 head가 같은 HBM stack을 쓸 수 있다. head 사이 통신은 없다. (b) $K^\top$는 pCH·BG 사이 column-wise, bank 사이 row-wise로, $V$는 $K^\top$와 반대 방향으로 나눈다. (c) q vector를 global buffer에서 BG 안 모든 bank에 broadcast 해 bank 들이 동시에 계산한다. 논문은 KV cache 배치로 부하를 고르게 하고 row buffer 재사용과 내부 대역폭을 최대로 쓴다고 쓴다 §IV-B p.7.

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 표
4.1Table I
4.1.cTABLE I: Model configurations (p.10)TLM–DLM 쌍은 OPT-66B + OPT-1.3B, OPT-175B + OPT-6.7B, Llama-3.1-70B-Instruct + Llama-3.2-1B-Instruct이고, 모두 FP16이다 §V-A p.9. 표의 열은 parameter 수, hidden size $d_{\text{model}}$, decoder layer 수, attention head 수다. 예: OPT-66B는 $d_{\text{model}}$ 9216·layer 64·head 72, OPT-1.3B는 2048·24·32, Llama3 70B는 8192·80·64다 TABLE I p.10.
4.2
system구성근거
4.2.1GPU-ADDGX 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-ADAttAcc의 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-SDPIM-AD와 같은 hardware에서 speculative decoding. SpecPIM의 mapping 전략대로 초기 batch size·최대 sequence length로 실행 전 design-space 탐색을 한다§V-A p.9
4.2.5SADDLESADDLE PIM device 8 개 × (A100 1 개 + NVLink로 연결한 HBM3 PIM chip 5 개, 각 16 GB, 5.2 Gbps/pin)§V-A p.9
4.2.6workloadDolly 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 · energyRamulator2와 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.

5.1 Fig.12
5.1.cFig. 12: Throughput of SADDLE compared to four baselines across models and batch sizes (normalized to GPU-AD), highlighting SADDLE’s consistent performance gains (p.10) 세 칸은 왼쪽부터 OPT-66B, Llama3.1-70B, OPT-175B 모델 쌍(DLM은 4 절 표)이고, 칸마다 x 축은 batch size 16·32·64·128, y 축은 같은 모델 쌍·batch size의 GPU-AD throughput을 1로 둔 값이다. 막대 색은 회색 GPU-AD, 갈색 GPU-SD, 초록 PIM-AD, 노랑 PIM-SD, 파랑 SADDLE이다. 12 개 조합 전부에서 SADDLE이 가장 높다. batch size 16·32에서는 GPU-SD·PIM-SD도 GPU-AD·PIM-AD보다 높지만, batch size가 커지면 speculative decoding의 우위가 줄거나 뒤집힌다 §V-B p.10. 그림을 읽으면 batch size 128에서는 세 모델 쌍 모두 GPU-SD가 GPU-AD 아래, PIM-SD가 PIM-AD 아래다 해석.
논문은 세 가지를 든다. 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을 없앤 것이 아니라 줄인 것으로 읽어야 한다 해석.
5.2 Fig.14
5.2.cFig. 14: Throughput of SADDLE (OPT-66B+OPT-1.3B) and its variants across batch sizes (normalized to PIM-SD), highlighting gains from adaptive length, shared pool, eager pool, and dynamic mapping (p.11) Fig.12의 이득을 부품별로 나누는 ablation이다. OPT-66B+OPT-1.3B에서 x 축은 batch size 16·32·64·128, y 축은 같은 batch size의 PIM-SD throughput을 1로 둔 값이고, 막대는 왼쪽부터 회색 PIM-SD, 살구색 SADDLE-d, 노랑 SADDLE-p, 초록 SADDLE-s, 파랑 SADDLE로 부품을 하나씩 더한 순서다. 아래 배수는 batch size 16–128 평균이다. adaptive draft length만 넣은 SADDLE-d는 PIM-SD보다 1.22× 느리다. Shared Pool을 더한 SADDLE-p는 SADDLE-d 대비 1.52×, PIM-SD 대비 1.25×이고, Eager Pool이 1.24×, 동적 operator mapping이 1.13×를 더한다 §V-C p.11. 논문은 SADDLE-d가 느린 이유를 bubble(Fig.5b)과 operator intensity 변화(Fig.6)로 든다 §V-C p.11. 단계별 배수를 곱하면 $0.82 \times 1.52 \times 1.24 \times 1.13 \approx 1.75$로 두 pool 단계의 배수(1.52, 1.24)가 가장 크다. 다만 두 pool은 adaptive draft length가 만든 bubble을 다루는 부품이라 이득을 부품별로 떼어 말하기는 어렵다 해석. 본문은 Eager Pool까지 넣은 정적 mapping 구성과 동적 mapping을 넣은 구성을 모두 "SADDLE-s"로 부르며, 요약 문서는 Fig.14 legend대로 앞의 것을 SADDLE-s, 뒤의 것을 SADDLE로 읽었다 해석.
5.3 Fig.16
5.3.cFig. 16: Latency breakdown of PIM-SD and SADDLE (p.12) 네 칸은 batch size 16·32·64·128이고, 칸마다 PIM-SD와 SADDLE의 end-to-end inference latency(y 축, 초)를 단계별로 쌓았다(모델 쌍은 원문에 명시 없음). 주황 빗금은 verification, 파란 빗금은 prediction, 초록은 monitoring, 노랑은 decision-making 시간이고, SADDLE 막대에서 두 빗금이 겹친 구간에 "Overlap"이 표시되어 있다. monitoring·decision-making은 SADDLE end-to-end latency의 0.83%다. 논문은 $H_t$ 갱신 곱셈 몇 번과 $H_t$·$\tau$ 비교 한 번이 SADDLE Manager의 전용 hardware에서 돌기 때문이라고 쓴다 §V-E p.11. monitoring이 $H_t$ 갱신, decision-making이 $\tau$ 비교에 대응한다는 것은 요약자의 해석이다 해석. 논문은 adaptive draft length로 redundant computation과 병렬성 저하를 줄여 PIM-SD 대비 prediction latency가 1.18×, verification latency가 1.23× 줄고, "the decoupled asynchronous pipeline overlaps prediction and verification, achieving 1.73× end-to-end latency reduction"이라고 쓴다 §V-E p.11. 막대 높이를 재면 PIM-SD ÷ SADDLE의 네 batch size 평균이 약 1.7이므로, 1.73×는 겹침만의 효과가 아니라 prediction·verification 감소와 겹침을 모두 포함한 end-to-end 비교로 읽힌다. 겹침 하나의 기여는 원문에서 따로 재지 않았다 해석.
Fig.13 — energy efficiency
5.4Fig.13
5.4.cFig. 13: Energy efficiency of SADDLE compared to four baselines across models and batch sizes (normalized to GPU-AD), demonstrating SADDLE’s consistent energy advantages (p.10) 칸·x 축·막대 색은 Fig.12와 같고, y 축만 같은 모델 쌍·batch size의 GPU-AD를 1로 둔 energy efficiency다. energy efficiency의 정의(예: 같은 일에 쓴 energy의 역수)는 원문에 없다. 세 모델 쌍 × batch size 16–128 평균 energy efficiency는 GPU-AD 대비 6.81×, GPU-SD 5.96×, PIM-AD 2.32×, PIM-SD 1.45×다 §V-B p.10. 논문 설명은 이렇다. GPU-AD·GPU-SD 대비로는 memory-bound operator를 PIM chip에서 돌려 중간 activation을 GPU global memory로 자주 옮기는 energy를 피했다. PIM-AD 대비로는 speculative decoding이 FLOPs를 늘리지만 global memory 접근이 크게 줄었다. PIM-SD 대비로는 rejected token의 redundant computation을 없앴다 §V-B p.10.
Fig.15 — sequence length · 작은 batch size 민감도
5.5Fig.15
5.5.cFig. 15: Throughput sensitivity of SADDLE to (a) sequence length and (b) batch size, showing increasing gains with longer sequences and competitive performance under small batches (p.11) 두 패널은 서로 다른 조건을 바꾸고, 둘 다 y 축은 GPU-AD를 1로 둔 throughput, 막대 색은 Fig.12와 같다. (a)는 Llama3.1-70B+Llama3.2-1B, batch size 16에서 x 축 decoding length를 1024 → 8192로 늘린 그림으로, 길어질수록 SADDLE의 이득이 커진다. (b)는 OPT-66B+OPT-1.3B에서 x 축 batch size를 1·2·4·8로 줄인 그림으로, SADDLE은 PIM-SD와 비슷하고 다른 baseline보다 높다 §V-D p.11. (a)는 SADDLE의 이득이 attention 비중과 함께 커지는 조건, (b)는 이득이 작아지는 조건을 보여 준다 해석. 논문 설명에 따르면 sequence가 길수록 KV cache가 커져 attention 실행 시간이 늘고, attention을 PIM에 두는 이득이 커진다. 작은 batch size에서는 낭비 연산의 영향이 작아 PIM-SD와 비슷하다 §V-D p.11.
Fig.17 · Fig.18 · Fig.19 — 통신 비용, hardware 사용률, operator scheduling 효과
5.6Fig.17
5.6.cFig. 17: The execution time breakdown of SADDLE's TLM verification phase (p.12) x 축은 token length 1024·2048·4096·8196(그림 표기), y 축은 SADDLE의 TLM verification phase 실행 시간을 100%로 둔 항목별 비율이다. 초록은 HBM stack 사이 data 전송(Stack Com.), 노랑은 pCH 사이 data 전송(pCH Com.), 파랑은 FC, 살구색은 attention, 회색은 나머지 연산(Others)이다. 본문은 TLM verification 시간 중 cross-pCH 통신이 13.54%, cross-stack 통신이 7.51%이고 통신이 bottleneck이 아니라고 쓴다 §V-E p.11. 두 값이 어느 token length의 값인지 평균인지, 모델 쌍이 무엇인지는 원문에 명시가 없다. 논문은 DRAM die마다 accumulator가, HBM stack의 buffer die마다 SFU가 부분합을 먼저 모아 이동량을 줄이고, 내부 대역폭(device 안 2 TB/s)과 device 간 대역폭(600 GB/s)이 나머지 지연을 가린다고 쓴다 §V-E p.11. 그림에서 token length가 길수록 Attention 비중이 커지는 것은 요약자의 판독이다 해석.
5.7Fig.18
5.7.cFig. 18: The PIM and GPU utilization of SADDLE and baselines across models (p.12) 세 칸은 모델 쌍(OPT-66B, Llama3-70B, OPT-175B), 칸 안 두 묶음은 PIM과 GPU, y 축은 batch size 64에서 잰 평균 utilization(%)이고, 막대는 초록 PIM-AD, 노랑 PIM-SD, 파랑 SADDLE이다. 세 모델 쌍 평균에서 SADDLE은 GPU utilization을 PIM-AD·PIM-SD 대비 1.13×·1.37×, PIM utilization을 1.84×·1.18× 올린다 §V-E p.11. utilization을 무엇으로 쟀는지(연산기 busy 시간 비율인지, 대역폭 사용 비율인지)는 원문에 정의가 없다. 논문은 asynchronous decoding pipeline이 pipeline stall을 줄인 결과라고 쓴다 §V-E p.11.
5.8Fig.19
5.8.cFig. 19: The FLOPS breakdown and the throughput of SADDLE without and with operator scheduling (p.12) 세 칸은 모델 쌍이고, 칸마다 W/O는 operator scheduling을 끈 SADDLE, W는 켠 SADDLE이다. 막대(왼쪽 y 축 "#of Ops(%)")는 SADDLE이 실행한 전체 operation 중 PIM(파랑)과 GPU(주황)에서 실행한 비율이고, 빨간 점과 선(오른쪽 y 축)은 W/O를 1로 둔 throughput이다. operator scheduling이 없으면 operation의 9.51%가 PIM, 90.49%가 GPU에서 실행되고, 켜면 14.89%·85.11%로 바뀌며 throughput이 1.21× 오른다 §V-E p.11–12. 그림의 모델별 throughput 배수는 OPT-66B 1.24×, Llama3-70B 1.21×, OPT-175B 1.17×다. batch size와 9.51%가 어느 모델의 값인지는 원문에 명시가 없다. 논문은 1.21×를 "fully exploiting the acceleration potential of the heterogeneous architecture"로 표현한다 §V-E p.12. 원문은 최적 mapping(oracle)과 비교하지 않았으므로 가속 여지를 다 썼는지는 측정되지 않았고, 측정된 것은 scheduling을 켠 경우와 끈 경우의 차이다 해석. PIM 비중이 9.51% → 14.89%로 는 것은 intensity가 낮아진 DLM FC·TLM attention이 PIM으로 옮겨졌기 때문으로 읽힌다 해석.
area overhead
5.9
항목값근거
5.9.1DRAM die 당 추가 area16.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
한계근거
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.

7.1
연구한 일SADDLE과 차이
7.1.1A3 · SpAtten · Sanger · ELSA · DOTAASIC으로 attention 연산을 sparsification·quantization 등으로 줄임attention만 다뤄 큰 batch size에서 end-to-end 가속이 어렵다고 논문은 쓴다 (§VI p.12)
7.1.2AttAccattention을 HBM-PIM에, FC는 GPU에autoregressive decoding 가속. 평가의 PIM baseline과 SADDLE simulator의 바탕 (§II-C p.4, §V-A p.9)
7.1.3NeuPIM · IANUSNPU + PIM, dual-buffering · PIM-aware schedulingspeculative decoding 용이 아니다. 논문은 SpecPIM이 speculative decoding 용 첫 PIM-enabled heterogeneous system이라고 쓴다 (§II-C p.4) 해석
7.1.4SpecPIMspeculative decoding 용 PIM-enabled heterogeneous system. genetic algorithm·MCTS로 offline mapping$d$ 고정, 실행 중 적응 없음. 평가의 PIM-SD가 SpecPIM의 mapping 전략을 쓴다 (§VI p.12, §V-A p.9)
7.1.5PAPIbatch size 변화에 따라 GPU·PIM 사이 operator 재배치TLM 하나만 대상으로 하고 DLM–TLM 순차 실행의 idle time을 다루지 않는다 (§II-C p.4)
7.1.6TransPIM · CENTPIM 만으로 transformer inferencecompute-bound FC layer 가속이 부족하다 (§VI p.12)
7.1.7Disco · OPT-Treeclassifier로 draft 중단 결정 · 주어진 node 예산에서 draft tree 탐색단일 request latency를 줄였다. SADDLE은 추가 학습 없는 $H_t$ 방식을 batching과 결합했다 (§VI p.12–13)
background figure (Fig.1 · Fig.2)
7.2Fig.1
7.2.cFig. 1. Transformer-based LLM structure (p.3)prefill phase로 첫 output token을 만들고, 이후 decoding iteration마다 KV를 덧붙이며 token 하나씩 만든다. decoder layer는 QKV generation · multi-head attention · projection · FFN과 layer norm으로 그려져 있다 §II-A p.3.
7.3Fig.2
7.3.cFig. 2. Batching and speculative decoding in LLM inference. (a) Batching enables request-level parallelism. (b) Speculative decoding enables token-level parallelism via draft token generation (DLM) and parallel verification (TLM). (p.3)(a)는 request #0~#4를 묶어 iteration마다 request 수만큼 token을 만드는 batching으로, request 단위 병렬성을 준다. (b)는 request #0 하나에서 초록 DLM이 prediction stage에 draft token을 차례로 만들고 파란 TLM이 verification stage에서 한 번에 검사하는 speculative decoding으로, token 단위 병렬성을 준다. 그림의 draft token 세 개 중 두 개는 accept(✓), 마지막 하나는 reject(✗)다 §II-B p.3. SADDLE은 두 병렬성을 함께 쓰는 large batch speculative decoding을 다룬다 §VI p.12–13.

8세미나 발표 대본 (약 18 분)

1~7 절은 읽는 사람이 찾아보는 순서로 썼으므로, 발표에서는 논문 그림 순서대로 질문을 이어 가는 대본을 따로 둔다. Fig.1~19와 Table I을 원 caption·쪽과 함께 놓고, 그림마다 앞 그림이 남긴 질문에서 출발해 다음 그림으로 넘기는 발화를 적었다. Table I은 원문 p.10에 있지만 평가 전 실험 환경에서 다룬다.
발화문은 요약자가 쓴 것이고 논문에 없음, 수치와 주장은 원문에서 확인한 것만 넣었다. caption 끝의 시간은 권장 분량이며 합계 약 18 분 30 초다.

펼치기: 슬라이드별 그림과 발화 (Fig.1~19 · Table I)

도입 · 40 초

오늘 소개할 논문은 HPCA 2026의 SADDLE입니다. speculative decoding은 작은 draft 모델인 DLM이 token 여러 개를 먼저 만들고 큰 target 모델인 TLM이 한 번에 검사하는 방식인데, GPU와 PIM을 함께 쓰는 기존 system에서는 batch size가 커지면 speculative decoding을 쓰지 않을 때보다 throughput이 낮아지는 경우가 있습니다. SADDLE은 request마다 draft length를 실행 중에 정하고, request마다 draft length가 달라져 생기는 두 문제를 pool 두 개와 동적 operator mapping으로 다뤄, 세 모델 쌍·batch size 16~128 평균 throughput을 GPU-SD 대비 2.88배, PIM-SD 대비 1.71배로 올렸습니다. 문제를 보기 전에 배경 그림 두 장으로 용어부터 맞추겠습니다.

1 부 · 배경 (약 70 초)

8.1Fig.1
8.1.cFig. 1. Transformer-based LLM structure (p.3) · 25 초
첫 배경은 LLM이 token을 만드는 구조입니다. 왼쪽 prefill phase가 입력 전체로 첫 token $x_0$을 만들고, 가운데와 오른쪽 decoding phase는 iteration마다 token 하나를 만들면서 각 decoder layer의 Key·Value를 KV cache에 덧붙입니다. 오른쪽 확대 그림처럼 decoder layer는 QKV generation, multi-head attention, projection, FFN으로 이뤄지고, 논문은 QKV generation과 FFN을 FC operator, multi-head attention을 attention operator로 부릅니다. 뒤에서 GPU와 PIM에 나눠 싣는 단위가 바로 FC operator와 attention operator입니다.
8.2Fig.2
8.2.cFig. 2. Batching and speculative decoding in LLM inference. (a) Batching enables request-level parallelism. (b) Speculative decoding enables token-level parallelism via draft token generation (DLM) and parallel verification (TLM). (p.3) · 45 초
token을 하나씩만 만드는 decoding의 throughput을 올리는 방법은 두 가지이고, Fig.2가 두 방법을 나눠 보여 줍니다. (a)는 batching으로, request #0~#4를 한 iteration에 묶어 request 단위 병렬성을 얻으며, FC operator는 모든 request가 같은 weight를 쓰므로 GEMV 여러 개가 GEMM 하나로 합쳐집니다. (b)는 speculative decoding으로, 초록 DLM이 prediction stage에서 draft token을 차례로 만들고 파란 TLM이 verification stage에서 한 번에 검사하며, 그림에서는 draft token 세 개 중 두 개가 accept되고 마지막 하나가 reject됩니다. SADDLE은 두 병렬성을 함께 쓰는 큰 batch의 speculative decoding을 다루는데, 두 방법을 합치면 무슨 일이 생기는지가 다음 그림입니다.

2 부 · 문제 (약 4 분)

8.3Fig.3
8.3.cFig. 3: Inference throughput of SpecPIM (OPT-66B+OPT-1.3B) versus the baseline (OPT-66B) under (a) varying batch sizes (draft length = 8) and (b) varying draft lengths (batch size = 64). Throughput is normalized to the baseline. SpecPIM’s throughput peaks at d = 4, but degrades with longer drafts due to increased token rejection and wasted computation. (p.4) · 65 초
기존 system인 SpecPIM에서 batch를 키우면 speculative decoding이 얼마나 효과가 있는지 잰 결과입니다. SpecPIM은 A100 4개에 A100마다 HBM-PIM 5개를 붙인 구성이고, OPT-66B를 TLM, OPT-1.3B를 DLM으로 Dolly dataset을 돌렸으며, 초록 막대는 같은 hardware에서 OPT-66B만으로 autoregressive decoding한 baseline, 파란 막대는 speculative decoding입니다. (a)는 draft length를 8로 고정하고 x축 batch size를 8부터 128까지 늘린 그림으로, batch size 32까지는 파랑이 높지만 64와 128에서는 초록보다 낮아집니다. (b)는 batch size를 64로 고정하고 x축 draft length를 2부터 12까지 바꾼 그림으로, 본문 기준 $d=4$에서 baseline의 1.41배로 가장 높고 $d=8$과 12에서는 baseline 아래이므로, 다음 질문은 $d$를 4로 잘 고르면 해결되는가입니다.
8.4Fig.4
8.4.cFig. 4: (a) Token acceptance rates of the OPT-66B + OPT-1.3B model pair across three task categories in the Dolly dataset under different fixed draft lengths. (b) Per-iteration distribution of accepted tokens during speculative decoding for each task category using OPT-66B + OPT-1.3B. (c) Same as (b) using LLaMA3-70B + LLaMA3-1B. The results reveal dynamic and task-specific variations in optimal draft lengths across iterations and model pairs. (p.4) · 60 초
$d$ 하나를 잘 고르면 충분한지 보려고 논문은 accept되는 token 수를 Dolly의 세 task별로 나눠 봅니다. (a)는 OPT 쌍에서 x축 draft length를 4·8·12로 늘릴 때 y축 acceptance rate, 즉 DLM이 만든 draft token 중 TLM이 accept한 비율이고, 파랑 summarization, 주황 open_qa, 초록 creative_writing 세 task 모두 $d$가 길수록 낮아집니다. (b)는 같은 OPT 쌍에서 x축이 speculative decoding iteration 번호, y축이 해당 iteration에서 accept된 token 수인데, creative_writing은 첫 iteration 5개에서 12번째 iteration 1개로 줄고 세 task의 선이 서로 다르게 움직이며, (c)는 모델 쌍만 Llama3-70B+Llama3-1B로 바꾼 같은 그림으로 같은 task·iteration에서도 값이 (b)와 다릅니다. 논문은 accept될 수 있는 최대 token 수를 optimal draft length라 부르고, optimal draft length가 task·iteration·모델 쌍마다 달라 모든 request에 같은 $d$를 쓰면 낭비가 남는다고 결론짓는데, 그렇다면 request마다 $d$를 바꾸면 되는지가 다음 그림입니다.
8.5Fig.5
8.5.cFig. 5: Inefficiencies in speculative decoding pipeline designs: (a) Fixed draft lengths lead to wasted computation when draft tokens are later rejected by the TLM (marked by X); (b) A naive realization of adaptive draft length introduces pipeline bubbles due to synchronization delays when requests in the same batch have varying draft lengths. (p.5) · 50 초
Fig.5는 고정 draft length와 request별 draft length를 같은 batch의 request 4개로 비교하며, 두 패널 모두 가로가 시간, 세로가 request #0~#3, 초록 칸 하나가 draft token 하나를 만드는 시간, 파란 상자가 TLM verification입니다. (a)는 $d$를 고정한 경우로, #1과 #2의 뒤쪽 draft token에 빨간 X가 붙어 있고 나중에 reject될 token을 만든 연산이 낭비입니다. (b)는 request마다 draft length를 다르게 한 단순한 방식인데, 가장 긴 #0이 끝날 때까지 verification이 시작하지 못해 일찍 끝난 #1~#3의 칸이 bubble로 비어 있습니다. 즉 (a)의 낭비 연산을 없애려고 (b)로 가면 기다리는 시간이 새로 생기며, 논문은 문제가 하나 더 있다고 말합니다.
8.6Fig.6
8.6.cFig. 6: Roofline analysis of speculative decoding operators on OPT-66B (TLM) + OPT-1.3B (DLM) under varying draft sequence lengths and effective batch sizes. The arithmetic intensity (FLOPs/Byte) and performance (TFLOPS) of the attention and FC operators shift significantly across configurations, highlighting transitions in bottlenecks (PIM compute-bound vs. GPU bandwidth-bound) and the corresponding optimal hardware execution targets. (p.5) · 65 초
두 번째 새 문제는 operator의 성격이 실행 중에 바뀐다는 것이고, Fig.6이 roofline으로 보여 줍니다. x축은 arithmetic intensity, 즉 memory에서 1 byte를 읽을 때의 연산 수이고 y축은 달성 성능 TFLOPS이며, 주황 선이 PIM, 검은 선이 GPU의 한계로 읽히고 빨간 점선 왼쪽은 PIM이, 오른쪽은 GPU가 빠른 구간입니다. 원은 attention, 삼각형은 FC, 파랑은 TLM인 OPT-66B, 노랑은 DLM인 OPT-1.3B이고, 연한 색은 아직 draft 중인 request 수와 draft length가 (4, 1), 진한 색은 (12, 8)인 설정입니다. 설정이 (4, 1)에서 (12, 8)로 바뀌면 TLM attention과 DLM FC가 점선 왼쪽에서 오른쪽으로 넘어가므로 실행 전에 한 번 정한 mapping은 맞지 않게 되고, 따라서 SADDLE에는 draft length를 정하는 방법, 기다림을 줄이는 방법, operator를 다시 배치하는 방법 세 가지가 필요합니다.

3 부 · 설계 (약 4 분 30 초)

8.7Fig.7
8.7.cFig. 7: Overview of the SADDLE computing system, consisting of a host, SADDLE Manager, and multiple SADDLE PIM devices interconnected via high-speed links (e.g., CXL or NVLink). (b) Architecture of a SADDLE PIM device, including a centralized processor (e.g., GPU or TPU), router, and multiple PIM chips. (c) Internal structure of a PIM chip based on the HBM-PIM architecture, showing the pseudo-channel (pCH) with PE-attached banks, global buffer, and accumulator. (d) Datapath architecture of a Processing Element (PE) supporting parallel matrix computations. (e) Specialized functional unit (SFU) for softmax and related operations such as normalization. (p.6) · 55 초
세 가지 해법을 올릴 hardware부터 보겠습니다. 다섯 패널은 왼쪽에서 오른쪽으로 한 단계씩 확대한 그림으로, (a)는 host, SADDLE Manager, SADDLE PIM device 여러 개가 CXL이나 NVLink 같은 interconnect로 이어진 전체 system이고, (b)는 SADDLE PIM device 하나로 가운데 centralized processor(평가에서는 A100 GPU)와 router 주위에 PIM chip 여러 개가 붙어 있습니다. (c)는 PIM chip 안의 bank group으로 bank마다 PE가 하나씩 붙고 pCH 단위로 global buffer와 accumulator가 있으며, (d)는 PE 내부로 bank의 row buffer와 global buffer에서 operand를 받아 곱셈기와 adder tree로 계산하고, (e)는 buffer die의 SFU로 softmax처럼 행렬 곱이 아닌 연산을 맡습니다. 세 해법을 실행 중에 결정하는 곳은 (a)의 SADDLE Manager이고, SADDLE Manager의 내부가 다음 그림입니다.
8.8Fig.8
8.8.cFig. 8: Overview of the SADDLE Manager (p.6) · 75 초
SADDLE Manager에는 micro-batch마다 Draft Generator가 하나씩 있고, Draft Generator는 Controller와 Eager Pool로 이뤄지며, Shared Pool과 Scheduler는 SADDLE Manager 전체에 하나씩 있습니다. 오른쪽 SADDLE PIM device들이 prediction과 verification을 실행하고, Scheduler가 SADDLE PIM device로 보낼 operator를 어느 hardware로 보낼지 정합니다. 새 draft token이 생기면 Controller는 해당 request의 이전 draft token이 verification 중인지 보고, 아니면 Shared Pool에, verification 중이면 Eager Pool에 넣습니다.
첫 번째 해법인 draft 멈춤 판단도 Controller가 합니다. Controller는 draft token을 하나 sample할 때마다 sample한 token의 DLM 확률 $p_t$를 곱해 누적 확률 $H_t$를 갱신하고, $H_t$가 validation set으로 미리 정한 threshold $\tau$ 아래로 떨어지면 해당 request의 draft를 멈춥니다. 그래서 확률이 높은 token이 이어지는 request는 길게, 확률이 낮은 token이 나온 request는 짧게 draft하며, 판단은 곱셈 몇 번과 비교 한 번이라 Controller 안의 전용 hardware에서 처리합니다. 두 pool이 실제로 어떻게 맞물리는지는 Fig.11에서 보고, 그 전에 data를 PIM에 어떻게 나눠 두는지 짧게 보겠습니다.
8.9Fig.9
8.9.cFig. 9: Data sharding and execution flow of the decoder. QKV and first FFN layers use column-wise partitioning, while attention projections and second FFN layers use row-wise partitioning. AllReduce consolidates intermediate results to enable parallel execution with minimal communication. (p.7) · 25 초
Fig.9는 decoder layer의 weight를 PIM device들에 나눠 두는 방식으로, 왼쪽부터 QKV generation, multi-head attention, projection, FFN 순서이고 색 하나가 weight 조각 하나에 대응합니다. QKV generation은 attention head 단위로 나눠 각 head의 출력을 바로 attention 입력으로 쓰고, projection과 FFN의 둘째 FC는 부분 결과를 만든 뒤 AllReduce로 합칩니다. 본문과 caption의 row-wise·column-wise 표기가 서로 반대라는 점만 짚고, KV cache 배치로 넘어가겠습니다.
8.10Fig.10
8.10.cFig. 10: Mapping strategy for the KV cache. (a) Each attention head is assigned to a specific HBM stack, with heads from different requests potentially sharing the same stack. (b) K⊤ is partitioned column-wise at the pCH and BG levels, and row-wise at the bank level. V is partitioned row-wise at the pCH and BG levels, and column-wise at the bank level. (c) Bank-level layout and dataflow for computing attention: KT and V matrices are partitioned across bank groups and striped across banks to balance load and maximize row buffer reuse and internal memory bandwidth. The q vector is broadcast from the global buffer to all banks in a group for parallel processing. (p.7) · 25 초
세 패널은 HBM stack에서 bank 안 계산까지 확대합니다. (a)는 가로가 request, 세로가 HBM stack인 표로, attention head 하나를 HBM stack 하나에 두고 다른 request의 head가 같은 stack을 함께 쓸 수 있어 head 사이 통신이 없습니다. (b)는 stack 안에서 $K^\top$와 $V$를 BG와 bank에 서로 반대 방향으로 나누는 규칙이고, (c)는 q vector를 global buffer에서 bank group의 모든 bank에 broadcast해 bank 4개의 PE가 동시에 곱하는 모습입니다. data 배치는 여기까지이고, 이제 두 pool이 bubble을 어떻게 줄이는지 보겠습니다.
8.11Fig.11
8.11.cFig. 11. Example execution timelines of synchronous pipeline (p.8) · 85 초
Fig.5(b)의 bubble을 두 pool로 어떻게 줄이는지 보여 주는 timeline이고, 가로는 시간, 위 두 줄은 Device 0·1에서 DLM이 micro-batch #0(연한 파랑)과 #1(진한 파랑)의 draft token을 만드는 구간, 맨 아래 주황 막대는 TLM verification 구간입니다. 노란 Shared Pool은 여러 micro-batch의 draft token을 모아, token 수가 GPU가 한 번에 verification할 수 있는 양에 닿거나 GPU가 놀 때 한꺼번에 TLM으로 보냅니다. Shared Pool이 Locked인 동안에도 DLM은 verification 중인 token이 모두 accept된다고 가정하고 draft를 이어 가며, verification 중에 만든 token은 초록 Eager Pool에 쌓입니다. Unlock 뒤 이전 draft token이 모두 accept된 request의 Eager Pool token만 Shared Pool로 옮기고, reject가 나온 request의 token은 버린 뒤 TLM이 고친 token부터 다시 draft합니다.
Eager Pool이 필요한 이유는 Shared Pool만 쓰면 pool이 빨리 차서, 논문 예로 draft token 5개를 만들 수 있던 request가 2개만 만들고 verification으로 넘어가기 때문입니다. 다만 그림에도 TLM이 노는 빗금(Idleness) 구간이 남아 있어 idle time이 0이 되지는 않습니다. 남은 세 번째 해법은 Scheduler로, 매 prediction 뒤 아직 draft 중인 request 수로 DLM FC의 intensity를, verification 전에는 Shared Pool의 request별 token 수로 TLM attention의 intensity를 추정해 미리 재 둔 threshold와 비교하고 GPU 또는 PIM으로 보냅니다. DLM attention은 PIM, TLM FC는 GPU에 고정하므로 실행 중에 옮기는 것은 DLM FC와 TLM attention 두 operator뿐입니다.

실험 환경 · 80 초

8.12Table I
8.12.cTABLE I: Model configurations (p.10) · 80 초
평가로 넘어가기 전에 실험 환경입니다. 실제 chip이 아니라 Ramulator2와 AttAcc를 고쳐 만든 cycle-accurate simulator가 GPU system과 SADDLE 모두의 실행 시간과 energy를 계산했습니다. 모델은 Table I의 TLM–DLM 세 쌍, OPT-66B+OPT-1.3B, OPT-175B+OPT-6.7B, Llama-3.1-70B-Instruct+Llama-3.2-1B-Instruct이고 모두 FP16이며, 예를 들어 OPT-66B는 hidden size 9216, layer 64개, head 72개, OPT-1.3B는 2048, 24개, 32개입니다. dataset은 Dolly 하나이고 batch size는 16·32·64·128, 최대 sequence length는 1024 token(OPT-175B는 memory 제약으로 512)입니다.
hardware는 모든 system의 memory 용량을 640 GB로 맞췄습니다. GPU-AD·GPU-SD는 A100 80 GB 8장인 DGX A100(합산 memory 대역폭 16 TB/s)에서 DeepSpeed Inference로 돌리고, PIM-AD·PIM-SD는 같은 A100 8장에 HBM-PIM stack 40개(각 16 GB, 내부 대역폭 144 TB/s)를 붙인 AttAcc 구조이며, PIM-SD는 SpecPIM의 mapping 전략으로 실행 전에 design space를 탐색합니다. SADDLE은 A100 1장과 NVLink로 연결한 HBM3 PIM chip 5개(80 GB, pin당 5.2 Gbps)로 된 device 8개를 쓰고, device 안 대역폭은 2 TB/s, device 사이는 600 GB/s이며, SADDLE Manager에는 Shared Pool·Eager Pool·누적 확률용 SRAM을 1 KB씩 둡니다. host CPU 종류, host memory, PCIe 세대, pipeline stage 수와 sampling 설정은 원문에 나와 있지 않습니다.

4 부 · 평가 (약 6 분)

8.13Fig.12
8.13.cFig. 12: Throughput of SADDLE compared to four baselines across models and batch sizes (normalized to GPU-AD), highlighting SADDLE’s consistent performance gains (p.10) · 65 초
첫 질문은 Fig.3에서 무너졌던 큰 batch에서도 SADDLE이 앞서는가입니다. 세 칸은 왼쪽부터 OPT-66B, Llama3.1-70B, OPT-175B 모델 쌍이고, 칸마다 x축이 batch size, y축은 같은 모델 쌍·batch size의 GPU-AD를 1로 둔 throughput이며, 막대는 회색 GPU-AD, 갈색 GPU-SD, 초록 PIM-AD, 노랑 PIM-SD, 파랑 SADDLE입니다. 12개 조합 모두에서 파랑이 가장 높고, 평균으로 GPU-AD 대비 3.36배, GPU-SD 2.88배, PIM-AD 1.94배, PIM-SD 1.71배입니다. batch size 128을 보면 세 모델 쌍 모두 GPU-SD가 GPU-AD보다, PIM-SD가 PIM-AD보다 낮아 Fig.3의 역전이 다시 나타나지만 SADDLE은 앞서며, 같은 조건에서 energy는 어떤지가 다음 그림입니다.
8.14Fig.13
8.14.cFig. 13: Energy efficiency of SADDLE compared to four baselines across models and batch sizes (normalized to GPU-AD), demonstrating SADDLE’s consistent energy advantages (p.10) · 35 초
칸과 막대 배치는 Fig.12와 같고 y축만 GPU-AD를 1로 둔 energy efficiency이며, 평균으로 GPU-AD 대비 6.81배, GPU-SD 5.96배, PIM-AD 2.32배, PIM-SD 1.45배입니다. 논문은 GPU system 대비 이득을 memory-bound operator를 PIM에서 돌려 중간 activation을 GPU global memory로 옮기는 energy를 줄인 데서, PIM-SD 대비 이득을 reject될 token의 연산을 줄인 데서 찾습니다. energy efficiency의 정확한 정의는 원문에 없고, throughput 이득이 세 부품 중 어디서 왔는지는 다음 ablation이 답합니다.
8.15Fig.14
8.15.cFig. 14: Throughput of SADDLE (OPT-66B+OPT-1.3B) and its variants across batch sizes (normalized to PIM-SD), highlighting gains from adaptive length, shared pool, eager pool, and dynamic mapping (p.11) · 65 초
OPT-66B+OPT-1.3B에서 x축 batch size마다 PIM-SD를 1로 두고 부품을 하나씩 더한 ablation입니다. 막대는 왼쪽부터 회색 PIM-SD, 살구색 SADDLE-d(adaptive draft length만), 노랑 SADDLE-p(Shared Pool 추가, DLM과 TLM은 여전히 순차 실행), 초록 SADDLE-s(Eager Pool 추가, FC는 GPU·attention은 PIM 고정), 파랑 SADDLE(동적 operator mapping 추가)입니다. 살구색 SADDLE-d가 네 batch size 모두 1보다 낮아 평균 PIM-SD보다 1.22배 느린데, Fig.5(b)의 bubble과 Fig.6의 intensity 변화를 풀지 않으면 adaptive draft length만으로는 손해라는 뜻이고, SADDLE-d 위에 Shared Pool이 SADDLE-d 대비 1.52배, Eager Pool이 1.24배, 동적 mapping이 1.13배를 더합니다. 이득이 큰 batch에서 나온다면 batch가 아주 작거나 sequence가 길 때는 어떤지가 다음 그림입니다.
8.16Fig.15
8.16.cFig. 15: Throughput sensitivity of SADDLE to (a) sequence length and (b) batch size, showing increasing gains with longer sequences and competitive performance under small batches (p.11) · 40 초
두 패널은 서로 다른 조건을 바꾸며, 둘 다 y축은 GPU-AD를 1로 둔 throughput입니다. (a)는 Llama3.1-70B+Llama3.2-1B, batch size 16에서 x축 sequence length를 1024부터 8192까지 늘린 그림으로, 길수록 SADDLE의 이득이 커지는데 논문은 KV cache가 커져 attention 시간이 늘고 attention을 PIM에서 돌리는 이득이 커지기 때문이라고 설명합니다. (b)는 OPT-66B+OPT-1.3B에서 x축 batch size를 1·2·4·8로 줄인 그림으로, SADDLE은 PIM-SD와 비슷한데 논문은 batch가 작으면 낭비 연산의 영향이 작기 때문이라고 씁니다. SADDLE의 이득이 시간 단계 중 어디서 생기는지는 다음 latency 분해가 보여 줍니다.
8.17Fig.16
8.17.cFig. 16: Latency breakdown of PIM-SD and SADDLE (p.12) · 55 초
네 칸은 batch size 16·32·64·128이고, 칸마다 PIM-SD와 SADDLE의 end-to-end latency를 초 단위로 쌓았으며, 모델 쌍은 원문에 명시가 없습니다. 주황 빗금은 verification, 파란 빗금은 prediction, 초록은 monitoring, 노랑은 decision-making이고, SADDLE 막대에서 두 빗금이 겹친 부분에 Overlap이 표시되어 있습니다. 논문은 PIM-SD 대비 prediction latency가 1.18배, verification latency가 1.23배 줄었고, $H_t$ 갱신과 $\tau$ 비교에 쓴 시간은 SADDLE end-to-end latency의 0.83%라고 보고합니다. end-to-end latency는 1.73배 줄었는데 논문은 겹침의 효과로 설명하지만, 1.73배는 두 단계의 감소와 겹침을 모두 포함한 비교로 읽어야 하며, 다음으로 PIM 사이 통신이 시간을 잡아먹지 않는지 보겠습니다.
8.18Fig.17
8.18.cFig. 17: The execution time breakdown of SADDLE’s TLM verification phase (p.12) · 30 초
TLM verification을 여러 pCH와 HBM stack에 나눠 돌리면 통신이 늘 수 있어, 논문은 SADDLE의 TLM verification 실행 시간을 항목별로 나눴습니다. x축은 token length, y축은 비율이고, 초록이 stack 사이 통신, 노랑이 pCH 사이 통신, 파랑이 FC, 살구색이 attention입니다. 본문은 pCH 사이 통신이 13.54%, stack 사이 통신이 7.51%이고 DRAM die의 accumulator와 buffer die의 SFU가 부분합을 먼저 모아 전송량을 줄인다고 설명하는데, 두 값이 어느 token length의 값인지는 원문에 없습니다. 통신이 bottleneck이 아니라면 남는 질문은 hardware를 얼마나 바쁘게 썼는가입니다.
8.19Fig.18
8.19.cFig. 18: The PIM and GPU utilization of SADDLE and baselines across models (p.12) · 35 초
세 칸은 모델 쌍, 칸 안의 두 묶음은 PIM과 GPU이고, y축은 batch size 64에서의 평균 utilization이며, 막대는 초록 PIM-AD, 노랑 PIM-SD, 파랑 SADDLE입니다. 여섯 묶음 모두 SADDLE이 가장 높고, 세 모델 쌍 평균으로 GPU utilization은 PIM-AD·PIM-SD 대비 1.13배·1.37배, PIM utilization은 1.84배·1.18배이며, 논문은 asynchronous pipeline이 pipeline stall을 줄인 결과로 봅니다. utilization을 무엇으로 쟀는지는 원문에 정의가 없고, 마지막으로 operator scheduling이 PIM 쪽 일을 얼마나 늘렸는지 보겠습니다.
8.20Fig.19
8.20.cFig. 19: The FLOPS breakdown and the throughput of SADDLE without and with operator scheduling (p.12) · 40 초
세 칸은 모델 쌍이고, 칸마다 W/O는 operator scheduling을 끈 SADDLE, W는 켠 SADDLE입니다. 막대는 왼쪽 y축으로 전체 operation 중 파랑 PIM과 주황 GPU에서 실행한 비율, 빨간 점과 선은 오른쪽 y축으로 W/O를 1로 둔 throughput입니다. 본문은 PIM 비율이 9.51%에서 14.89%로 늘고 throughput이 1.21배 올랐다고 쓰며, 그림의 모델별 값은 OPT-66B 1.24배, Llama3-70B 1.21배, OPT-175B 1.17배입니다. 논문은 1.21배를 heterogeneous architecture의 가속 여지를 다 쓴 결과로 표현하지만 최적 mapping과의 비교는 없으므로, 측정된 것은 scheduling을 켰을 때와 껐을 때의 차이입니다.

마무리 · 50 초

정리하겠습니다. GPU와 PIM을 함께 쓰는 기존 speculative decoding system은 draft length를 고정해, 큰 batch에서 reject될 token의 생성·verification 연산이 쌓여 autoregressive decoding보다 throughput이 낮아질 수 있었습니다. SADDLE은 누적 확률 $H_t$로 request마다 draft를 멈추고, Shared Pool과 Eager Pool로 request마다 draft length가 달라져 생기는 대기를 줄이며, arithmetic intensity를 보고 DLM FC와 TLM attention을 GPU와 PIM 사이에서 옮겨 PIM-SD 대비 평균 1.71배의 throughput을 얻었습니다. 한계로는 실제 chip이 아닌 simulator 결과라는 점, dataset이 Dolly 하나이고 $\tau$를 validation set으로 offline에 정해 다른 도메인에서 다시 맞춰야 할 수 있다는 점, greedy verification 순서 때문에 생길 수 있는 request별 latency와 fairness를 보고하지 않았다는 점을 들 수 있습니다. 감사합니다.