% Original paper figures are retained with source locators.
% Presentation prepared for paper discussion; not authored by the paper authors.
% Based on skills/arxiv-paper-reader/assets/beamer-template.tex.
\documentclass[aspectratio=169,11pt]{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath,amssymb,graphicx,booktabs}

\definecolor{AcademicBlue}{RGB}{26,57,86}
\definecolor{AcademicTeal}{RGB}{0,105,112}
\setbeamercolor{structure}{fg=AcademicBlue}
\setbeamercolor{frametitle}{fg=AcademicBlue,bg=white}
\setbeamercolor{title}{fg=AcademicBlue}
\setbeamercolor{alerted text}{fg=AcademicTeal}
\setbeamercolor{block title}{fg=white,bg=AcademicBlue}
\setbeamercolor{block body}{fg=black,bg=AcademicBlue!5}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{itemize items}[circle]
\setbeamertemplate{footline}{%
 \hfill\usebeamerfont{page number in head/foot}%
 \insertframenumber\,/\,\inserttotalframenumber\hspace{4mm}\vspace{3mm}}
\setbeamersize{text margin left=8mm,text margin right=8mm}
\setbeamerfont{frametitle}{size=\Large,series=\bfseries}
\setbeamerfont{title}{size=\LARGE,series=\bfseries}
\newcommand{\papersource}[1]{\par\smallskip{\scriptsize\color{gray}#1\par}}
\newcommand{\nemb}{\text{N-emb}}
\newcommand{\KL}{D_{\mathrm{KL}}}
\newcommand{\takeaway}[1]{\begin{block}{Key point}#1\end{block}}

\title[Relaxed Recursive Transformers]{Relaxed Recursive Transformers}
\subtitle{Effective Parameter Sharing with Layer-wise LoRA}
\author{Paper by Sangmin Bae, Adam Fisch, Hrayr Harutyunyan,\\
Ziwei Ji, Seungyeon Kim, and Tal Schuster}
\date{ICLR 2025 \quad $\vert$ \quad arXiv:2410.20672v3\\[3pt]
Paper discussion prepared September 28, 2026}

\begin{document}

% Main talk: slides 1--22, approximately 25 minutes.
\begin{frame}
 \titlepage
 \vspace{-5mm}
 \begin{center}
 \small Reuse a pretrained layer block; recover depth-specific differences with low-rank residuals.
 \end{center}
 \papersource{\href{https://arxiv.org/abs/2410.20672v3}{Versioned paper}; arXiv revision: Feb.\ 28, 2025. PDF: 49 pages.}
\end{frame}

\begin{frame}{Convert a pretrained model into a shared backbone}
 \centering
 \includegraphics[width=.91\linewidth,height=.49\textheight,keepaspectratio]{figures/fig-01-overview.pdf}
 \begin{itemize}
 \item Keep the original unfolded depth, while storing fewer unique layers.
 \item Add a separate low-rank residual at every unfolded depth.
 \item Shared computation also enables a new batching dimension.
 \end{itemize}
 \papersource{Paper, Fig.\ 1, PDF p.\ 2; Secs.\ 2.2--2.4. Original author figure.}
\end{frame}

\begin{frame}{Parameter storage and computational depth are different}
 \begin{columns}[T]
 \begin{column}{.49\textwidth}
 \begin{block}{What sharing directly changes}
 \[
 P_{\rm rec}\approx P_{\rm emb}+\frac{P_{\rm blocks}}{B}
 \]
 Fewer independent weights are stored.
 \end{block}
 \end{column}
 \begin{column}{.47\textwidth}
 \begin{block}{What still needs computation}
 \begin{itemize}
 \item All $L$ layers, unless tokens exit early.
 \item Distinct hidden states across loops.
 \item Distinct KV states across depths.
 \end{itemize}
 \end{block}
 \end{column}
 \end{columns}
 \medskip
 \takeaway{More room for batching is possible, but depends on the memory bottleneck. Parameter sharing alone does not guarantee lower latency.}
 \papersource{Architectural interpretation of Eq.\ (2), p.\ 3; KV caveat explicitly discussed in App.\ K, p.\ 45.}
\end{frame}

\begin{frame}{A shared block is applied repeatedly}
 Let $L$ be total depth, $B$ the loop count, and $K=L/B$.
 \[
 j(\ell)=((\ell-1)\bmod K)+1,\qquad
 \mathbf h_t^\ell=f(\mathbf h_t^{\ell-1};\Phi'_{j(\ell)}).
 \]
 \begin{block}{Gemma example}
 18 unfolded layers $\longrightarrow$ 9 unique layers, executed twice:
 \[
 [\Phi'_1,\ldots,\Phi'_9]\;\longrightarrow\;
 [\Phi'_1,\ldots,\Phi'_9].
 \]
 \end{block}
 \begin{itemize}
 \item This is the \textbf{CYCLE} tying strategy.
 \item Linear weights and normalization parameters are shared.
 \item Attention context and KV caches are implicit in $f$.
 \end{itemize}
 \papersource{Paper, Sec.\ 2.2, Eq.\ (2), p.\ 3; App.\ B, p.\ 25.}
\end{frame}

\begin{frame}{The shared block can inherit pretrained knowledge}
 \centering
 \includegraphics[width=.96\linewidth,height=.47\textheight,keepaspectratio]{figures/fig-02-initialization.pdf}
 \begin{itemize}
 \item \textbf{Stepwise:} select spaced layers, retaining first/last sources.
 \item \textbf{Average:} average weights at corresponding loop positions.
 \item \textbf{Lower:} retain the first $K$ layers.
 \end{itemize}
 \papersource{Paper, Fig.\ 2, p.\ 4. Six-layer example; two loops. Original author figure.}
\end{frame}

\begin{frame}{Each unfolded depth gets its own low-rank residual}
 For $W'_{j(\ell)}\in\mathbb R^{d\times k}$ and $\mathbf x\in\mathbb R^k$:
 \[
 \mathbf z=W'_{j(\ell)}\mathbf x+B_\ell A_\ell\mathbf x,
 \qquad A_\ell\in\mathbb R^{r\times k},\quad B_\ell\in\mathbb R^{d\times r}.
 \]
 \begin{itemize}
 \item The same base matrix serves multiple loop iterations.
 \item The adapter is selected by \textbf{unfolded depth} $\ell$.
 \item Adapters cover attention and FFN linear matrices.
 \item \textbf{All parameters are trained}, including the shared backbone.
 \end{itemize}
 \takeaway{Rank controls the amount of depth-specific capacity. Each adapter costs $r(d+k)$ parameters.}
 \papersource{Paper, Sec.\ 2.3, Eq.\ (3), pp.\ 4--5. Matrix $B_\ell$ is distinct from loop count $B$.}
\end{frame}

\begin{frame}{SVD initializes the residual toward the original layer}
 \[
 R_\ell=W_\ell-W'_{j(\ell)}
 \;\approx\; U_r^\ell\Sigma_r^\ell(V_r^\ell)^\top
 \]
 \[
 B_\ell\leftarrow U_r^\ell\Sigma_r^\ell,\qquad
 A_\ell\leftarrow(V_r^\ell)^\top.
 \]
 \begin{itemize}
 \item The initial effective weight approximates the pretrained $W_\ell$.
 \item $r=0$: strict recursive model; larger $r$: richer reconstruction.
 \item If $R_\ell=0$, use random $A_\ell$ and zero $B_\ell$.
 \end{itemize}
 \takeaway{Matrix reconstruction improves with rank. Network accuracy need not improve monotonically; exact whole-model equivalence needs more conditions.}
 \papersource{Paper, Eqs.\ (4)--(5), p.\ 5; App.\ C, p.\ 26. Last statement is a reading qualification.}
\end{frame}

\begin{frame}{The best initialization changes when LoRA is added}
 \begin{columns}[c]
 \begin{column}{.48\textwidth}
 \centering
 \includegraphics[width=\linewidth,height=.66\textheight,keepaspectratio]{figures/fig-07a-rank.pdf}
 \end{column}
 \begin{column}{.49\textwidth}
 \begin{itemize}
 \item Strict tying: Stepwise is a strong starting point.
 \item Relaxed tying: Average + SVD performs best here.
 \item Stepwise has a mid-rank accuracy dip.
 \end{itemize}
 \medskip
 Gemma, 15B tokens, $B=2$:
 \[
 \text{Average, }r=512:
 \quad49.0\%\to55.5\%
 \]
 when replacing zero initialization with SVD.
 \end{column}
 \end{columns}
 \papersource{Original Fig.\ 7a, p.\ 11; Table G.2, p.\ 36. The 6.5-point gain is specific to Average initialization.}
\end{frame}

\begin{frame}{Three model families test the conversion recipe}
 \centering
 \setlength{\tabcolsep}{10pt}
 \begin{tabular}{lrrrr}
 \toprule
 Base model & Layers & N-emb & Emb/head & Pretrain \\
 \midrule
 Gemma 2B & 18 & 1.98B & 0.52B & 3T \\
 TinyLlama 1.1B & 22 & 0.97B & 0.13B & 105B \\
 Pythia 1B & 16 & 0.81B & 0.21B & 300B \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item SlimPajama uptraining: 15B or 60B tokens; usually $B=2$.
 \item Context 2048; batch about 2M tokens; 8 H100 GPUs.
 \item Seven-task mean accuracy $\uparrow$; three-corpus perplexity $\downarrow$.
 \item TinyLlama uses an \textbf{early checkpoint}, not its 3T checkpoint.
 \end{itemize}
 \papersource{Table 1, p.\ 6; Apps.\ D--E, pp.\ 26--28. Later tables round Gemma N-emb to 1.99B.}
\end{frame}

\begin{frame}{The full-size reference changes with uptraining}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Gemma checkpoint & Additional tokens & Mean accuracy \\
 \midrule
 Original pretrained & 0 & \textbf{61.7\%} \\
 Full-size, uptrained & 15B & 60.1\% \\
 Full-size, uptrained & 60B & \textbf{58.6\%} \\
 Relaxed, $r=512$ + KD & 60B & \textbf{58.4\%} \\
 \bottomrule
 \end{tabular}
 \medskip
 \takeaway{The 0.2-point gap is to the uptrained full-size target. The gap to the original checkpoint is 3.3 points.}
 \begin{itemize}
 \item The authors attribute deterioration to the new data distribution/quality.
 \item A scratch baseline does not inherit the same pretraining history.
 \end{itemize}
 \papersource{Table 2, p.\ 7; Table I.2, p.\ 39. These tables qualify the wording in Sec.\ 3.3, p.\ 8.}
\end{frame}

\begin{frame}{Pretrained initialization drives a large part of the gain}
 \centering
 \begin{tabular}{lr}
 \toprule
 Gemma, 0.99B N-emb, 15B training tokens & Accuracy \\
 \midrule
 Non-recursive, trained from scratch & 38.2\% \\
 Recursive, random initialization & 37.6\% \\
 Recursive, Lower & 47.1\% \\
 Recursive, Average & 46.7\% \\
 Recursive, Stepwise & \textbf{51.7\%} \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item +13.5 points over the scratch non-recursive baseline.
 \item +14.1 points over random recursive initialization.
 \item Recursion by itself is insufficient in this setting.
 \end{itemize}
 \papersource{Paper, Sec.\ 3.4; Table F.1, p.\ 30. Accuracy exceptions exist for other model/initialization pairs.}
\end{frame}

\begin{frame}{LoRA offers multiple points on the size--accuracy tradeoff}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Gemma, 60B uptraining + KD & N-emb & Accuracy \\
 \midrule
 Scratch non-recursive + KD & 0.99B & 44.9\% \\
 Recursive, Stepwise & 0.99B & 54.9\% \\
 Relaxed, Average + SVD, $r=64$ & 1.07B & 55.8\% \\
 Relaxed, $r=128$ & 1.15B & 56.6\% \\
 Relaxed, $r=256$ & 1.30B & 57.0\% \\
 Relaxed, $r=512$ & 1.60B & \textbf{58.4\%} \\
 \midrule
 Full-size, 60B uptraining without KD & 1.99B & 58.6\% \\
 \bottomrule
 \end{tabular}\par
 \medskip
 More capacity restores more accuracy, while reducing compression.
 \papersource{Paper, Fig.\ 4, p.\ 8; Table I.2, p.\ 39. These models have not yet received early-exit post-training.}
\end{frame}

\begin{frame}{Count embeddings and inherited training when quoting savings}
 \begin{columns}[T]
 \begin{column}{.49\textwidth}
 \begin{block}{Approximate total parameters}
 Gemma full-size: $1.99+0.52=2.51$B.
 \medskip

 Strict recursive: $0.99+0.52=1.51$B.

 About \textbf{40\%} fewer total parameters.
 \medskip

 Rank 512: $1.60+0.52=2.12$B.

 About \textbf{16\%} fewer total parameters.
 \end{block}
 \end{column}
 \begin{column}{.47\textwidth}
 \begin{block}{Incremental training cost}
 60B tokens are 2\% of Gemma's original 3T.
 \medskip

 The conversion inherits those pretrained weights.
 \medskip

 Online teacher inference and teacher preparation also cost compute.
 \end{block}
 \end{column}
 \end{columns}
 \papersource{Derived estimates from Table 1, p.\ 6 and Table I.2, p.\ 39; teacher definition in App.\ I, p.\ 38.}
\end{frame}

\begin{frame}{Longer uptraining and distillation both help}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Recursive Gemma, Stepwise & Accuracy & Gain \\
 \midrule
 15B, no KD & 51.7\% & -- \\
 60B, no KD & 53.4\% & +1.7 points \\
 15B, forward KL & 53.4\% & +1.7 points \\
 60B, forward KL & \textbf{54.9\%} & +3.2 points \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item Teacher: full-size model uptrained on 15B SlimPajama tokens.
 \item Forward KL constrains the student toward the teacher distribution.
 \item Reverse KL, JSD and TVD were also tested; small differences lack error bars.
 \end{itemize}
 \papersource{Paper, Sec.\ 3.6, pp.\ 10--11; Tables I.1--I.2, pp.\ 38--39.}
\end{frame}

\begin{frame}{Early-exit training must protect the final prediction}
 \[
 \mathcal L=\sum_{i=1}^{B}\alpha_i\mathcal L_i
 \]
 \begin{itemize}
 \item Standard weighted CE: $\alpha_i=i/\sum_j j$.
 \item Preferred two-loop setting: final weight 1, intermediate weight 0.1.
 \item Distill from the \textbf{detached final output} to the intermediate exit.
 \end{itemize}
 \medskip
 \centering
 \begin{tabular}{lrr}
 \toprule
 Gemma: 15B uptrain + 15B post-train & Final & First loop \\
 \midrule
 Weighted CE + self-KD & 50.4\% & 49.9\% \\
 Aggressive 0.1 + self-KD & \textbf{52.6\%} & 48.0\% \\
 \bottomrule
 \end{tabular}
 \papersource{Paper, Table 3, p.\ 11; Sec.\ 3.7, p.\ 12. Accuracy is measured at fixed exits, not with a deployed dynamic gate.}
\end{frame}

\begin{frame}{Relaxation can weaken the intermediate exit}
 \centering
 \begin{tabular}{lrrr}
 \toprule
 Gemma & Before exit training & Final after & First loop \\
 \midrule
 Strict recursive & 54.9\% & 54.0\% & \textbf{48.8\%} \\
 Relaxed, $r=512$ & \textbf{58.4\%} & 56.2\% & 41.7\% \\
 \bottomrule
 \end{tabular}\par
 \medskip
 Both receive 60B uptraining with KD, then 15B early-exit post-training.
 \begin{itemize}
 \item Depth-specific adapters improve final capacity.
 \item They may specialize early representations for later processing.
 \item The authors' explanation is plausible, but not a proven mechanism.
 \end{itemize}
 \takeaway{The 58.4\% accuracy result and the throughput model use different training states.}
 \papersource{Paper, App.\ J and Table J.2, pp.\ 40--42.}
\end{frame}

\begin{frame}{Shared blocks let requests at different loops share a batch}
 \centering
 \includegraphics[width=.99\linewidth,height=.44\textheight,keepaspectratio]{figures/fig-03-batching.pdf}
 \begin{itemize}
 \item Horizontal: scheduler time; vertical: model stage.
 \item A loop-2 sample and a loop-1 sample use the same base block.
 \item Early exits free slots for queued work immediately.
 \item Relaxed models still need different adapters per sample.
 \end{itemize}
 \papersource{Paper, Fig.\ 3, p.\ 5; Sec.\ 2.4. Original PDF crop retains all panel labels. Maximum batch = 32.}
\end{frame}

\begin{frame}{Throughput is estimated from timings and oracle trajectories}
 \begin{columns}[T]
 \begin{column}{.48\textwidth}
 \begin{block}{Measured component}
 \begin{itemize}
 \item A100 40GB GPU.
 \item Dummy inputs and weights.
 \item Per-token component timings across batch sizes.
 \item Prefix 512; decode 2048.
 \end{itemize}
 \end{block}
 \end{column}
 \begin{column}{.48\textwidth}
 \begin{block}{Simulated component}
 \begin{itemize}
 \item Queue of 20K samples.
 \item SlimPajama, RedPajama, PG19.
 \item Exit when an intermediate prediction matches the final one.
 \item Treat corpus tokens as generated.
 \end{itemize}
 \end{block}
 \end{column}
 \end{columns}
 \takeaway{This measures potential under ideal exit decisions. It is not an end-to-end serving benchmark.}
 \papersource{Paper, Sec.\ 3.8, pp.\ 12--13; Apps.\ E/K, pp.\ 28, 44--45.}
\end{frame}

\begin{frame}{The 2.66$\times$ result becomes 1.88$\times$ against CSB}
 \centering
 \begin{tabular}{lrrrr}
 \toprule
 Gemma configuration & Acc. & Tokens/s & vs.\ vanilla & vs.\ CSB \\
 \midrule
 Full-size, ordinary batch & 57.3 & 1080 & 1.00$\times$ & 0.71$\times$ \\
 Full-size, CSB & 57.3 & 1528 & 1.41$\times$ & 1.00$\times$ \\
 Recursive, CDB + oracle & 54.0 & \textbf{2877} & \textbf{2.66$\times$} & \textbf{1.88$\times$} \\
 Relaxed $r=64$, CDB + oracle & 54.0 & 2157 & 2.00$\times$ & 1.41$\times$ \\
 Relaxed $r=512$, CDB + oracle & 56.2 & 1719 & 1.59$\times$ & 1.13$\times$ \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item Simulated, Transformer-block-only throughput; average of three corpora.
 \item Accuracy (\%) is the final-exit seven-task mean after post-training.
 \item Model capacity and quality also differ across rows.
 \end{itemize}
 \papersource{Paper, Fig.\ 8, p.\ 12 and Table K.2, p.\ 47. A100 40GB; prefix 512, decode 2048.}
\end{frame}

\begin{frame}{Deployment still has unresolved costs}
 \begin{enumerate}
 \item \textbf{A real exit gate:} confidence estimation costs compute and can make errors.
 \item \textbf{Embedding and output head:} omitted from final throughput comparisons.
 \item \textbf{Missing deep KV states:} memory is counted, but refill computation is excluded.
 \item \textbf{Multi-LoRA execution:} concatenation is measured, but wastes work; optimized kernels remain open.
 \end{enumerate}
 \medskip
 \takeaway{Validate end-to-end throughput and output quality together, with realistic queues and a strong continuous-batching baseline.}
 \papersource{Paper, App.\ K, pp.\ 44--45; Sec.\ 5, p.\ 15. Final sentence is a proposed validation criterion.}
\end{frame}

\begin{frame}{The evidence supports conversion at modest model scales}
 \begin{itemize}
 \item Main experiments: roughly 1B--2B model families; smaller Pythia in the appendix.
 \item No 7B+ validation or evaluation of latent-reasoning gains.
 \item Seven few-shot tasks and perplexity give a limited capability profile.
 \item No reported multi-seed uncertainty supporting tiny accuracy differences.
 \item Rank, exit quality and adapter execution cost should be tuned together.
 \end{itemize}
 \medskip
 \begin{block}{Question for discussion}
 Does a task-aware shared center plus residual decomposition improve the quality--memory--throughput tradeoff beyond separate SVD initialization?
 \end{block}
 \papersource{Paper, Secs.\ 3 and 5; Apps.\ F--K. Discussion question is an analysis proposal.}
\end{frame}

\begin{frame}{Three points to retain}
 \begin{enumerate}
 \item \textbf{Conversion matters.} Pretrained knowledge makes a compact recursive model competitive with same-size scratch baselines.
 \medskip
 \item \textbf{Relaxation needs the right initialization.} Average + residual SVD gives a useful capacity control through LoRA rank.
 \medskip
 \item \textbf{Serving remains an open systems problem.} Shared blocks enable depth-wise batching; the reported acceleration is hypothetical.
 \end{enumerate}
 \medskip
 \papersource{Bae et al., \emph{Relaxed Recursive Transformers: Effective Parameter Sharing with Layer-wise LoRA}, ICLR 2025.\\
 \href{https://arxiv.org/abs/2410.20672v3}{arXiv:2410.20672v3}. Main talk ends here; four backup slides follow.}
\end{frame}

\appendix
\begin{frame}{Backup: separate inherited weights from recursion}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Pythia 410M conversion & Non-recursive & Recursive \\
 \midrule
 Random initialization & 37.63\% & 38.02\% \\
 Pretrained Stepwise initialization & 40.35\% & \textbf{41.54\%} \\
 \bottomrule
 \end{tabular}\par
 \medskip
 All four models: 150M non-embedding parameters; 15B Pile tokens.
 \begin{itemize}
 \item Pretrained weights contribute strongly.
 \item After inheriting weights, recursion adds 1.19 accuracy points.
 \item The recursive model executes more depth: this is not compute-matched.
 \end{itemize}
 \papersource{Paper, Table F.3, p.\ 32. Main-model uptraining uses SlimPajama; this ablation uses Pile.}
\end{frame}

\begin{frame}{Backup: where to spend relaxation parameters}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Gemma, Average + SVD, 15B tokens & N-emb & Accuracy \\
 \midrule
 All components $r=256$ & 1.30B & 54.2\% \\
 KV $r=128$; others $r=256$ & 1.29B & 54.1\% \\
 FFN $r=128$; others $r=256$ & 1.18B & 53.3\% \\
 \bottomrule
 \end{tabular}\par
 \medskip
 FFN rank reduction also removes many more parameters.
 \begin{block}{Alternative: layer-specific prefixes}
 At about 1.07B N-emb with Average initialization:
 \[
 \text{prefix: }47.6\%\qquad
 \text{SVD LoRA }r=64:\;52.1\%.
 \]
 This supports the value of recovering pretrained layer differences.
 \end{block}
 \papersource{Paper, Tables G.1, G.2 and H.1, pp.\ 35--37.}
\end{frame}

\begin{frame}{Backup: three loops offer stronger compression}
 \centering
 \begin{tabular}{lrr}
 \toprule
 Gemma, 60B + KD, before exit training & N-emb & Accuracy \\
 \midrule
 Strict recursive, $B=2$ & 0.99B & 54.9\% \\
 Strict recursive, $B=3$ & 0.66B & 53.3\% \\
 Relaxed, $B=3$, $r=256$ & 0.97B & 56.1\% \\
 Relaxed, $B=3$, $r=512$ & 1.27B & 57.7\% \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item All cases preserve the 18-layer unfolded depth.
 \item Strict $B=3$ improves by 5.5 points over its 15B result.
 \item Three-loop relaxed exit training omits self-KD due to memory limits.
 \end{itemize}
 \papersource{Paper, Table I.2, p.\ 39; Table J.2 and caption, p.\ 42.}
\end{frame}

\begin{frame}{Backup: a short-context table needs clarification}
 Table K.4 reports a 16GB limit with prefix 64 / decode 256.
 \medskip

 \centering
 \begin{tabular}{lrrr}
 \toprule
 Gemma rows as printed & SlimP & RedP & PG19 \\
 \midrule
 Full-size, ordinary batch & 1740 & 3059 & 4796 \\
 Recursive, $B=2$, CDB & 3159 & 3050 & 2421 \\
 \bottomrule
 \end{tabular}
 \medskip
 \begin{itemize}
 \item The ratio of the printed mean throughputs is about 0.90.
 \item The same row is labeled 2.50$\times$.
 \item The recursive row repeats values from Table K.2.
 \end{itemize}
 \takeaway{The discrepancy is present in both PDF and TeX. This talk uses Fig.\ 8 / Table K.2 for its main throughput numbers.}
 \papersource{Reader verification of Table K.4, p.\ 49 versus Table K.2, p.\ 47. No corrected short-context multiplier is inferred.}
\end{frame}

\end{document}
