Technical GUIDE

Activation Recomputation Tradeoffs

Activation recomputation (gradient or activation checkpointing) saves GPU memory during training by discarding intermediate activations in the forward pass and recomputing them during the backward pass.

2 min readLast updated

Overview

It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

Deep Dive

Backpropagation needs the forward-pass activations to compute gradients, so by default every layer's outputs are stored — a huge memory cost that grows with model size, batch size, and sequence length. Activation recomputation keeps only a few 'checkpoint' tensors (often just layer boundaries) and throws away the rest. During the backward pass, it re-runs the forward computation between checkpoints to regenerate the discarded activations on demand. The classic result is that with checkpoints placed every sqrt(N) layers, memory drops to roughly O(sqrt(N)) while adding about one extra forward pass (~33% more compute). Selective variants recompute only cheap-but-memory-heavy ops (like attention or dropout) while caching expensive ones, getting most of the memory savings for far less recompute overhead.

Technical Insight

The fundamental tradeoff is memory versus FLOPs. Full recomputation roughly adds one extra forward pass per step (~30-40% slower) but can cut activation memory by an order of magnitude. The smart move is selective checkpointing: identify ops that are memory-large but compute-cheap (softmax, layernorm, GELU, attention scores) and recompute only those, while keeping results of expensive GEMMs cached — minimizing wasted compute.

Strategic Impact

Cost and budget

Architecture decisions drive performance and operating cost for years.

Clearer decisions

Technical education helps teams choose the right stack, not just the newest one.

Quality control

Better engineering choices reduce reliability incidents in production.

The Future of Activation Recomputation Tradeoffs

Recomputation is increasingly automated and selective. Frameworks now profile each op's memory and FLOP cost to choose optimal checkpoints, and combine recomputation with activation offloading to CPU/NVMe and with parallelism strategies. As context lengths and model sizes keep growing, expect compiler-driven policies (in PyTorch, JAX/XLA) that pick per-op recompute decisions automatically, plus tighter overlap of recompute with communication so the extra FLOPs are partly hidden.

Real-World Implementation

Training a large transformer that wouldn't otherwise fit by checkpointing each layer block

Using PyTorch's torch.utils.checkpoint to wrap transformer blocks and cut activation memory

Selective recomputation of attention/softmax in Megatron-LM to save memory with minimal slowdown

Enabling longer sequence lengths on a fixed GPU budget by recomputing activations instead of storing them

Risks & Guardrails

Optimizing one benchmark can hide broader system weaknesses.

Infrastructure and maintenance costs are often underestimated.

Security and observability gaps can grow as systems become more complex.

Implementation Roadmap

1

Define latency, quality, and cost targets before implementation.

2

Benchmark under realistic load and data conditions.

3

Instrument monitoring for errors, drift, and user impact.

4

Prepare rollback and incident response paths before scaling.

Keep Exploring

Free newsletter

Keep up with AI in 3 minutes a day

One short email each weekday with the three AI stories that actually matter. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Activation Recomputation Tradeoffs quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Start quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Next guide

SmoothQuant and Activation Quantization

Frequently asked questions

What is Activation Recomputation Tradeoffs?

Activation recomputation (gradient or activation checkpointing) saves GPU memory during training by discarding intermediate activations in the forward pass and recomputing them during the backward pass. It trades extra compute for the ability to train larger models or longer sequences on the same hardware.

What does activation recomputation trade away to save memory?

Recomputation discards stored activations and regenerates them in the backward pass, spending extra compute to reduce memory usage.

Why are forward-pass activations normally stored at all?

The backward pass uses the forward activations to compute gradients, so by default they are kept in memory until the backward pass runs.

Roughly how much extra compute does full activation recomputation typically add?

Full recomputation re-runs the forward computation during the backward pass, adding roughly one extra forward pass — on the order of 30-40% more compute.

What is the idea behind selective (not full) recomputation?

Selective recomputation targets ops that use lots of memory but little compute (like softmax or layernorm), while caching expensive GEMM results to minimize wasted FLOPs.

Which complementary technique is often combined with recomputation to save even more memory?

Activation offloading moves some activations to CPU/NVMe storage, and is frequently combined with recomputation and parallelism for further memory savings.