REVIEW 2 major objections 3 minor 3 cited by
FORGE claims the materialized weight gradient is a staging artifact, not a learning requirement, and eliminates it by fusing the optimizer into the backward pass at tile granularity—provably exact for element-wise optimizers and exact under
Reviewed by Pith at T0; open to challenge. T0 means a machine referee read the full paper against a public rubric. the ladder, T0–T4 →
T0 review · deepseek-v4-flash
2026-08-02 10:27 UTC pith:GWT7BTE6
load-bearing objection A genuinely new per-tile optimizer fusion with clean single-GPU math and careful benchmarks, but the sequence-parallel exactness claim is overbroad and the artifact isn't public yet. the 2 major comments →
FORGE: Fused On-Register Gradient Elimination for Memory-Efficient LLM Training
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
The central claim is that the weight-gradient tensor—whose 2P term sets the memory ceiling in standard training—can be eliminated rather than compressed. FORGE computes the weight gradient of a linear layer as a sequence of 128×128 tiles inside the backward matrix multiply, applies the optimizer arithmetic to each tile in fp32 registers, and writes back only the updated weight and moment tiles. Because an element-wise-separable optimizer updates each coordinate independently, the per-tile schedule lands on exactly the same weights as materializing the full gradient and stepping once (Proposition 1). The same coordinate-wise argument makes the fused update exact under tensor- and sequence-par
What carries the argument
The central object is the per-tile fused gradient-and-optimizer epilogue: the backward weight-gradient matrix multiply is partitioned into 128×128 tiles, each tile accumulates its exact gradient in fp32 registers over token chunks, then the optimizer's element-wise update runs in the same registers, and the tile is discarded before any byte of it reaches global memory. The load-bearing identity is element-wise separability—an optimizer whose update at each coordinate depends only on that coordinate of weight, gradient, and state commutes with any tiling of the weight index set. This turns the O(P) gradient pool into O(TR·TC) per active tile, removes the separate optimizer kernel launch, and
Load-bearing premise
The claim rests on the requirement that a weight's gradient be complete and readable before the fused in-place update fires, which rules out every multi-consumer weight (tied embeddings or LM heads, mixture-of-experts experts with cross-rank reduction) and any data/context-parallel setup where partial gradients must be all-reduced before stepping.
What would settle it
Numerical falsifier: run FORGE with fp32 state on one linear layer and compare its updated weights against a standard optimizer applied to the exact same fp32 gradient with the same token-axis summation order; the two should be bit-identical, and any difference beyond documented GEMM reduction-order non-associativity would refute the exactness proposition. Memory falsifier: train a model with a tied embedding/LM head while fusing all linear layers and measure peak memory during backward; if the parameter-scaled gradient term persists, the single-consumer precondition has been violated.
If this is right
- For single-consumer linear layers, the 2P gradient term disappears from peak memory, leaving the gradient pool O(TR·TC) per active tile, independent of parameter count, and cutting the per-parameter optimizer-side cost from 18 to 6 bytes with bf16 state.
- The fused update is exact for any element-wise-separable optimizer in fp32 state, and the coordinate-wise argument proves exactness under tensor- and sequence-parallel sharding; data- and context-parallel training must fall back to a standard optimizer because partial gradients must be summed before the nonlinear update.
- Because the gradient is consumed in fp32 registers, FORGE avoids the bf16 truncation bias that low-precision optimizers carry, and with stochastic rounding of the weight store it matches an fp32-master baseline where round-to-nearest bf16 in-place steps lose about 6%.
- The reclaimed memory composes with activation checkpointing and FP8/8-bit quantized states, so downstream compression translates directly into peak-memory savings rather than being capped by a co-resident gradient transient.
- At the largest tested scale, a 14-billion-parameter model that does not fit on a single accelerator under the fused-AdamW baseline does fit under FORGE, and in a 4-GPU tensor-parallel setup FORGE fits four times the micro-batch, turning the memory saving into throughput.
Where Pith is reading between the lines
- We infer that the paper's boundary implies a practical hybrid: any training loop with tied embeddings or mixture-of-experts experts would fuse only single-consumer linears and keep a standard step for the rest, so the claimed memory floor applies to the bulk of transformer linear layers but not to the whole model.
- A direct ablation that materializes the tile before the update—forcing the exact gradient round-trip that FORGE skips—would isolate how much of the ~1.5× speedup comes from removing the HBM gradient write/read versus from eliminating the optimizer kernel launch; the paper's mechanism suggests both are large but does not separate them.
- If exactness extends as claimed, then approximate memory-saving optimizers that replace AdamW with factored or global-statistic rules are trading away exact large-batch AdamW dynamics on precisely the layers where an exact element-wise fusion costs nothing; whether the approximations ever pay for themselves in quality remains an open question the paper does not resolve.
- A testable scaling prediction follows: FORGE's memory saving as a fraction of peak should be largest when the optimizer step dominates, i.e., small batch, short sequence, many parameters, and the paper's tables across model size and sequence length are consistent with that; a prospective study could use the same kernel to predict fit at 70B+ scale.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. FORGE proposes to fuse element-wise optimizer steps (AdamW and others) into the per-tile backward weight-gradient GEMM of linear layers, so that each gradient tile is produced, consumed by the optimizer update, and discarded inside GPU registers before any gradient tensor is written to HBM. The paper gives an exact-arithmetic proof that per-tile fusion matches the standard full-gradient optimizer step for any element-wise-separable rule (Proposition 1), characterizes floating-point deviation as backward-GEMM reduction non-associativity, analyzes bf16/INT8 fidelity (bounded INT8 moment error, unbiased stochastic rounding for the bf16 weight store), and reports substantial memory and speed improvements on Llama-3.1-8B, Qwen3 family, and GPT-2 124M, plus a Megatron-LM tensor-parallel integration that fits an 8B model at 4x micro-batch on the same hardware.
Significance. If correct, FORGE addresses a real and relatively underexplored memory bottleneck: the materialized gradient tensor of size O(P), which is untouched by optimizer-state compression and activation recomputation. The core exactness argument is a clean coordinate-wise identity and is verified empirically with careful methodology (N=20 median timings, autotune disclosure, per-cell OOM logs, multi-seed convergence runs). The claimed 20--55% per-rank memory savings in tensor-parallel training and the 8B capability result are meaningful if they survive scrutiny. The main weakness is that the sequence-parallel exactness claim, prominently featured in the abstract and Section 4, is not supported by the proof as written; the single-GPU and pure tensor-parallel claims are not affected.
major comments (2)
- [§4 / Appendix A, Proposition 2(i)] The sequence-parallel exactness claim is not established. The proof argues that under sequence parallelism the full-sequence input is all-gathered before the weight-gradient GEMM, so the contraction over tokens is complete. But the weight-gradient contraction is G = Σ_t ΔY[t,:]^T X[t,:]; completing it requires both operands to be full-sequence. All-gathering X alone does not supply the matching ΔY rows. In standard Megatron sequence parallelism the upstream gradient ΔY is token-sharded at the wgrad point (or, depending on dataflow, requires an additional all-gather to make it full-sequence), and the paper's integration statement that 'no communication is added' rules out an all-gather of ΔY. Thus the abstract's claim that exactness 'survives ... sequence-parallel sharding' is overbroad. Please either restrict the exactness claim to tensor parallelism, or specify a sequence-parallel dataf
- [§2.2, Eq. (6) and Remark 1] The headline memory equation M_FORGE = 2P + kP + 0 + Σ|aℓ| + O(TR·TC) and the abstract's claim that the gradient floor is eliminated apply only to the subset of weights that are single-consumer and fused. Tied embeddings/LM heads, MoE experts with cross-rank reduction, and any weight with more than one backward consumer remain on the standard optimizer and retain a materialized gradient term. The body does acknowledge this in Remark 1 and in the Limitations, but the unconditional form of Eq. (6) and of the abstract's 'eliminates the materialized gradient' phrasing is likely to mislead. Please state the scope explicitly wherever the global memory equation is presented.
minor comments (3)
- [§2.2, Algorithm 1] Algorithm 1 is titled 'fused backward and AdamW kernel' but does not compute the input gradient ΔX = ΔY·W, which Remark 1 says must be read before the in-place weight update. As written, the algorithm only produces the weight-gradient tile and the update. Please include the ΔX computation (or state explicitly that it is performed in a separate preceding kernel) so that the pseudocode matches the described backward computation.
- [§3.2 / Appendix F] The 0.001 nats average convergence-parity claim is computed on one continued-pretraining corpus (OpenMathInstruct-2) and averaged over a family of models. This is disclosed in the Limitations, but it would be helpful to state at the point of the claim in §3.2 that the number is corpus-specific and is below the expected BF16-vs-FP32 precision floor, rather than a universal algorithmic invariant.
- [Appendix J, Tables 13 and 15] Several B200 reference rows are marked as measured under Protocol A (N=5, mean), while the remaining rows use Protocol B (N=20, median). This is disclosed, but because the headline tables mix the two protocols on the same page, the reader may inadvertently compare Protocol A absolute values against Protocol B values. A visible separator or a 'not directly comparable' annotation on the affected rows would improve clarity.
Circularity Check
No circularity: FORGE's exactness is a self-contained algebraic partition argument; the sequence-parallel concern is a correctness gap, not circularity.
full rationale
The derivation chain is self-contained. Proposition 1 proves per-tile exactness from the definition of element-wise-separable optimizers and the fact that any partition of coordinates sums to the same total gradient; this is a direct algebraic identity, not a fitted value or a prediction forced by a construction. The memory bound in Proposition 3 follows from the register-resident lifetime of each tile by definition of the algorithm, and the empirical results are comparisons against external baselines (fused AdamW, bnb 8-bit, GaLore, APOLLO, AdaLomo, FlashOptim) rather than recoveries of fitted parameters. The low-precision and INT8 propositions are standalone mathematical bounds with explicitly stated assumptions. No load-bearing self-citation appears: the paper's references are to standard prior work, and no 'uniqueness theorem' or ansatz-carrying citation is invoked to force the choice of tile fusion. The skeptical concern about Proposition 2's sequence-parallel exactness is a potential correctness gap in the proof (all-gathering the input does not by itself complete the token contraction if the upstream gradient is also token-sharded), but this is not circularity: it is an unsupported claim, not a reduction of the conclusion to its own inputs. Therefore the circularity score is 0.
Axiom & Free-Parameter Ledger
free parameters (2)
- Tile geometry (TR, TC, TK, num_warps) =
TR=TC=128, TK=64, num_warps=8 (autotuned on H200)
- INT8 quantization block size for moments =
qblock=64
axioms (4)
- domain assumption Optimizer update is element-wise-separable (Definition 1): each coordinate's new weight depends only on that coordinate of (W, G, S).
- domain assumption Single-consumer precondition for in-place weight updates (Remark 1).
- standard math Real-arithmetic identity of token-chunk summation (Proposition 1, Step 1); floating-point non-associativity is the only discrepancy (Corollary 1).
- standard math Weight gradient of a linear layer equals ΔY^T X (Eq. 3).
read the original abstract
Reverse-mode differentiation computes every weight gradient, writes it to memory, and only then lets the optimizer read it back. This two-phase schedule sets the memory ceiling of modern training: at the seam between the phases, every layer's gradient is live at once. We argue that this materialized gradient is an artifact of how differentiation is staged, not a quantity that learning requires -- and we eliminate it. FORGE folds the optimizer step into the backward pass and applies it one tile at a time, entirely in registers, so each gradient tile is consumed the instant it is produced and never becomes a tensor. The fusion changes only when the update happens, not what it computes: in full precision the fused step is provably exact -- the identical optimizer update, for every element-wise rule -- and that exactness survives tensor- and sequence-parallel sharding; in the bf16 and 8-bit regimes used in practice it is faithful rather than bit-identical, its deviation bounded and, for the weight store, rendered unbiased by stochastic rounding. Because each gradient tile is born and consumed in the same registers, it is never converted down to bf16 to be stored and read back; FORGE thus preserves the full-precision fidelity that both bf16 and 8-bit optimizers lose to that conversion. Nor is the method tied to one architecture or one optimizer: linear layers are ubiquitous, and FORGE reclaims the gradient memory of any of them under any element-wise rule. Empirically FORGE more than halves the memory of an optimizer step and, at the small batch sizes typical of fine-tuning and continued pretraining, runs about 1.5x faster; integrated into tensor-parallel Megatron-LM it fits 8B training at four times the micro-batch a standard optimizer allows on the same GPUs.
Figures
Forward citations
Cited by 3 Pith papers
-
Reference Traces for Auditing Invisible Weight Updates and Guiding Exact-Budget Protection
Weight updates that fall below half a ULP freeze coordinates deterministically, and freeze time is predictable a priori from a high-precision trajectory and mantissa length alone.
-
MMOE: Modernizing Diffusion Transformers with Efficient Expert Design
Composing MoE++ lightweight experts with attention-residual reuse inside SiT yields faster FID convergence and better quality-cost tradeoff than dense or plain sparse baselines at fixed single-node budget.
-
Reference Traces for Auditing Invisible Weight Updates and Guiding Exact-Budget Protection
A matched high-precision reference trace forecasts invisible weight-update events in controlled low-precision runs, and a pre-frozen 10% fp32-master mask recovers ~61% of the RNE-vs-fp32 loss gap on three unseen targets.
Reference graph
Works this paper leans on
-
[1]
AdamW (Loshchilov & Hutter, 2019): first and second moments, decoupled weight decay
2019
-
[2]
NAdam: AdamW with Nesterov momentum correction onˆm
-
[3]
RAdam: AdamW with rectified-variance term
-
[4]
Lion: sign-of-momentum update with a single moment buffer
-
[5]
RMSprop: second moment only, no first moment
-
[6]
AdaGrad: cumulative squared gradient (no decay)
-
[7]
SGD: vanilla gradient descent (no moment buffers)
-
[8]
SGD with momentum: single moment, no second moment. (ii) Linear-layer fusion only (standard optimizer step).These five couple coordinates through a row, column, block, or global statistic, so the update cannot be formed inside one tile; FORGE runs the tiled linear-layer backward and applies the optimizer as a standard step. They are included to show the l...
-
[10]
Adam-mini (Zhang et al., 2025): AdamW with shared per-block second moment
2025
-
[11]
Adafactor (Shazeer & Stern, 2018): factored (row×column) second-moment statistics
2018
-
[12]
AdaLomo (Lv et al., 2024): low-memory AdamW with factored second moment
2024
-
[13]
LAMB: layer-wise adaptive scaling (per-tensor trust ratio)
-
[14]
SM3: per-dimension running max for the cumulative moment. 33 Each fully-fused family replaces the body of Phase 2 of Algorithm 1 with∼10 lines of Triton arithmetic; the wgrad mainloop (Phase 1) and the state read/write pattern (Phase 3) are unchanged. Cross-element preconditioners (Muon’s Newton–Schulz orthogonalization (Jordan et al., 2024), Shampoo, SOA...
2024
-
[2025]
doi: 10.48550/arxiv.2406.16793. Jiawei Zhao, Zhenyu Zhang, Beidi Chen, Zhangyang Wang, Anima Anandkumar, and Yuandong Tian. GaLore: Memory-efficient LLM training by gradient low-rank projection. InInternational Conference on Machine Learning, 2024. doi: 10.48550/arxiv.2403.03507. Yanli Zhao, Andrew Gu, Rohan Varma, Liang Luo, Chien-Chin Huang, Min Xu, Les...
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.