AI Infra Interviews logo

TPU Generations Compared: v4, v5e, v5p, Trillium and Ironwood

Compare TPU memory, bandwidth and BF16 compute with explicit GB/GiB units, a 70B weight-fit example, and practical links to TPU 8 and TorchTPU support.

BY BRANDON SULLIVAN · AIINFRAINTERVIEWS EDITORIAL · UPDATED NOVEMBER 9, 2026 · 5 MIN READ

PRACTICE THIS:GPU and accelerator questions ·Inference and serving questions ·Calculate KV-cache memory

Compare TPU generations by memory fit, bytes moved per step and communication layout. v5e and v6e offer relatively small per-chip memory; v5p and provide more capacity and larger pod configurations. TPU 8 adds specialized training and inference designs, followed by 8tx and 8i Max system configurations. A larger generation number does not establish the lowest serving cost.

This November 10, 2026 comparison uses Google's generation documentation. It preserves the units published by each source because treating GiB as GB can change a fit decision. For the newest systems, read the separate TPU 8 comparison.

The per-chip comparison

BF16 is a 16-bit numerical format. A TFLOP/s is a trillion floating-point operations per second; these are peak compute figures. Bandwidth describes the rate at which data can move from HBM. Neither is a measured application rate.

GenerationBF16 TFLOP/sPublished HBMPublished HBM bandwidth
v427532 GiB1,200 GB/s
v5e19716 GB800 GiB/s
v5p45995 GiB2,765 GB/s
v6e / Trillium91832 GB1,638 GB/s
TPU7x / Ironwood2,307192 GiB7,380 GB/s

The v5p documentation explains that its 95 GiB figure accounts for reserved memory from 96 GiB physical HBM. Other rows should not be assumed to use exactly the same reservation convention. Use the runtime's allocatable limit for an implementation.

For v5e, 800 GiB/s is about 859 GB/s, or 0.859 decimal TB/s. A chart that labels this as 0.8 TB/s changes the denominator. The following memory chart converts every row to decimal GB before plotting.

Capacity on one common scale

HBM per chip converted to decimal GB; not allocatable application memory

055110165220
v5e0–16

Published as 16 GB

v6e0–32

Published as 32 GB

v40–34.36

32 GiB converted

v5p0–102.01

95 GiB converted

Ironwood0–206.16

192 GiB converted

A single scale reveals capacity differences; it does not rank latency, cost or supported parallel layouts.

How many chips hold a 70B model?

Assume exactly 70 billion parameters stored at two bytes each. That is 140 GB, about 130.39 GiB, of weights. Ignore the cache and temporary tensors for this first lower bound.

Compare requirements before choosing a configuration
Comparison
GenerationWeight-only arithmeticMinimum count by capacity
v5eceil(140 / 16)9
v6eceil(140 / 32)5
v5pceil(130.39 / 95)2
Ironwoodceil(130.39 / 192)1
Read each row as a separate choice. The surrounding explanation states the assumptions and limits.

These counts are arithmetic, not valid purchase configurations. Nine chips of capacity does not mean a nine-chip slice is supported. A compiler or runtime may also expose a chip as multiple devices with separate local allocations. A model fitting the summed chip memory can still fail on one rank.

Now add a real request budget. Suppose the chosen layout leaves 80 GiB for cache and each growing request reserves 10 GiB. The payload allows at most eight such reservations before block padding or other overhead. A smaller prompt at admission does not permit more requests if every admitted request may grow to the reserved maximum. The free KV-cache sizing reference works through that distinction.

Training changes the memory comparison

The 140 GB estimate describes stored inference weights. Full fine-tuning must also keep gradients and optimizer state. For one explicit mixed-precision Adam recipe, assume BF16 weights and gradients, an FP32 master copy of the weights, and two FP32 optimizer moments. The moments track moving averages used by Adam's update.

An explicit 70B training-state recipe
Comparison
StateBytes per parameter70 billion parameters
BF16 weights2140 GB
BF16 gradients2140 GB
FP32 master weights4280 GB
Two FP32 Adam moments8560 GB
Total: 16 bytes per parameter, or 1.12 TB before activations and temporary allocations. This recipe is an assumption, not every optimizer configuration.

Perfectly partitioning all four categories across eight devices gives 140 GB of persistent state per device. Replicating them gives 1.12 TB on every replica. Sharding only the optimizer moments lands somewhere else again. That is why an inference fit table cannot select a training slice. The free Model Memory Footprint reference explains the allocation categories.

Even the fully partitioned estimate excludes saved activations, layer all-gathers, communication buffers and allocator overhead. A layer can temporarily assemble weights that are partitioned between steps, so peak memory can exceed the persistent share. Measure the busiest device during a complete optimizer update, including the first update when optimizer tensors may be created.

Different optimizers, gradient precision and master-weight policies change the 16-byte assumption. Adapter fine-tuning changes which parameters need gradients and optimizer state, while the frozen base weights still consume memory unless they are offloaded or quantized. Write down the actual recipe before comparing TPU generations; otherwise the comparison can be wrong by much more than the difference between two chips.

Why more FLOPS may barely change decode

For a simplified dense-model decode step, assume eight v6e chips evenly split the 140 GB weights and each reads its 17.5 GB share once. Dividing by the published 1,638 GB/s gives a 10.68 ms weight-read floor. Four Ironwood chips would each read 35 GB at 7,380 GB/s, giving 4.74 ms.

The configurations use different chip counts. This is a time-floor comparison, not a cost or equal-system benchmark. It excludes cache reads, communication, computation and scheduling. Real throughput also depends on how many requests share the weight read. Nevertheless, the calculation identifies which measurement to collect next: achieved memory throughput at the intended batch and context length.

The Roofline Model relates work to traffic. Using the table, v6e's BF16 ridge point is about 560 FLOPs per byte, while Ironwood's is about 313. Those thresholds do not assert that an entire model is memory-bound; apply them to an operation with consistent work and byte counts.

Topology determines the cost of splitting the model

v5e and v6e have 256-chip 2D pod topologies. v4, v5p and Ironwood use larger three-dimensional layouts. Slice dimensions, wraparound and supported allocation sizes determine which communication paths a job actually gets. The generation documentation is the source for those details.

Tensor parallelism exchanges partial results frequently. Expert parallelism moves tokens to the devices holding selected experts. A placement that performs well for one pattern can perform poorly for another, even with identical chip count. Draw the group that communicates on each layer and map it to the physical slice before attributing a slow collective to the chip.

The Premium TPU generations concept connects these layout choices to memory arithmetic. The accelerator architecture questions provide entry points for interview practice.

Check software support separately

The TorchTPU backend and a serving plugin have different support matrices. A generation supported by the backend may be experimental in the particular vLLM integration you need. Preserve the model, engine, backend and runtime versions together in a deployment record; a package name alone does not describe a reproducible environment.

Start with the TorchTPU migration guide, select an existing supported recipe, and run numerical checks before the performance sweep. Keep the current platform if the candidate misses a required model feature, quality threshold or latency target. Reconsider after a compatible release or a workload change, using the same acceptance criteria.

PRACTICE THIS

Turn it into offers. Work the real questions and concepts this maps to:

FAQ

Yes. Trillium is the sixth-generation TPU, identified as v6e in Cloud TPU configurations. The exact slice and software release still determine what you can deploy.

Discussion (4)

Owen HartleyEditor

There is another capacity distinction: physical memory versus the amount the runtime allows you to allocate. Leave the measured device limit in the run record, even when the spec table looks generous.

Brandon SullivanEditor

A weight-only fit is a useful rejection test. I would never use it as an admission limit for live requests.

Maya CastilloEditor

Especially after the prompt. Reserve for output growth or specify how the scheduler will preempt it.

Jonas WeberEditor

Request the topology with the quote. A set of independently allocated chips is not automatically the communication domain your parallel layout assumes.