Technical GUIDE

Gradient Checkpointing

Gradient checkpointing (also called activation checkpointing) is a memory-saving trick that throws away most intermediate activations during the forward pass and recomputes them on the fly during backpropagation.

2 min readLast updated

Overview

It lets you train deeper, larger networks by trading extra compute for much lower memory use.

Deep Dive

Training neural networks normally stores every layer's activations during the forward pass because backpropagation needs them to compute gradients. For deep models these activations dominate memory. Gradient checkpointing instead saves activations only at a sparse set of 'checkpoint' layers and discards the rest. When backprop reaches a region whose activations were dropped, it re-runs the forward computation for just that segment to regenerate what it needs, then proceeds. With checkpoints placed roughly every square-root-of-N layers, memory for activations drops from order N to order square-root-of-N, while compute rises by only about one extra forward pass (roughly 20-30% slower). This makes it possible to fit larger batch sizes or deeper transformers on the same GPU.

Technical Insight

The technique exploits a time-versus-memory tradeoff. Storing all activations is fast but memory-hungry; recomputing them is cheap on modern accelerators relative to the cost of running out of memory. Frameworks like PyTorch (torch.utils.checkpoint) wrap a module so its forward output is saved but its internals are recomputed during backward. Choosing checkpoint placement matters: an even spacing of roughly sqrt(N) segments minimizes total memory while adding only a single extra forward pass of compute overall.

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 Gradient Checkpointing

Gradient checkpointing is now standard in large-model training and is increasingly automated, with libraries selecting optimal checkpoint locations for you. It pairs naturally with FSDP, mixed precision, and offloading to push model sizes higher. Expect 'selective' checkpointing that recomputes only cheap operations while keeping expensive ones (like attention matrices) cached, plus compiler-driven approaches in tools like PyTorch's torch.compile that automatically decide what to save versus recompute for the best speed-memory balance.

Real-World Implementation

Training a deep transformer with a larger batch size on a single GPU by discarding and recomputing layer activations.

Fine-tuning vision models on high-resolution images where activation maps would otherwise overflow GPU memory.

Hugging Face Transformers enabling gradient_checkpointing=True to fit billion-parameter models during fine-tuning.

Combining checkpointing with FSDP so both parameters and activations are kept small, enabling training of very large language models.

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

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

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

Test yourself

Take the Gradient Checkpointing 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

Gradient Accumulation

Frequently asked questions

What is Gradient Checkpointing?

Gradient checkpointing (also called activation checkpointing) is a memory-saving trick that throws away most intermediate activations during the forward pass and recomputes them on the fly during backpropagation. It lets you train deeper, larger networks by trading extra compute for much lower memory use.

What does gradient checkpointing primarily trade in order to save memory?

Gradient checkpointing recomputes discarded activations during the backward pass, spending extra compute in exchange for substantially reduced memory.

Why are activations normally stored during the forward pass?

Backprop computes gradients using the intermediate activations from the forward pass, so they must be available unless they are recomputed.

Roughly how does activation memory scale if checkpoints are placed every sqrt(N) layers in an N-layer network?

Spacing checkpoints about every square-root-of-N layers reduces stored activation memory from order N down to order sqrt(N).

Approximately how much extra compute does well-placed gradient checkpointing typically add?

With good checkpoint placement, the overhead is roughly a single additional forward pass, often around a 20-30% slowdown.

In PyTorch, which utility is commonly used to apply gradient checkpointing to a module?

torch.utils.checkpoint wraps a module so its internal activations are recomputed during backward instead of being stored.