Cloud TPU v4 ICI (inter-chip interconnect), 3D mesh reconfigurable to 3D torus, 4096-chip pod
Fields
interconnect/w7c-google-tpu-ici-v4Notes
The generation to point a reader at for the torus argument, because its 46:1 all-reduce-to-bisection ratio is the starkest in this set and because its topology is genuinely conditional - mesh or torus depending on slice shape - which is a trap for anyone who reads '3D mesh' as the whole story. HOST PACKING AND SMALL SLICES: v4 slice names are TensorCore-based, so v4-8 is 4 chips, v4-16 is 8, v4-32 is 16, v4-64 is 32, and larger slices come in 64-chip increments (v4-128 = 64 chips at 4x4x4, up to v4-4096 = 2048 chips at 8x16x16). Reading a v4 slice name as a chip count overstates it by 2x, which then corrupts any model-fit arithmetic done from the name. V4 HAS NO 'Chips per host' ROW on its spec page - unlike v5e and v6e, which both publish it - so v4 host packing cannot be read from the sheet and is not recorded here. FIT DECISION: the 4096-chip pod x 32 GiB HBM is the scale-up-domain ceiling, and the practical sharding boundary for anything larger is Multislice over DCN; within one pod the constraint is the slice shape, since only certain shapes give a torus. CONTRAST WITH v5p: v5p is a 3D torus by default with an 8960-chip pod, whereas v4 is a 3D mesh that becomes a torus only on conforming shapes, so 'v4 and v5p are both 3D tori' is wrong. Sources: asic-tpu-v4-specs for every pod-level figure, the 3D mesh/torus conditions, the twisted-topology table and the six-links-per-chip statement; asic-tpu-v4-paper for optical circuit switching between cubes; w7c-google-tpu-multislice-overview for the ICI/DCN definitions.
=== THE HALVING IS NOT AN ASSUMPTION — CONFIRMED 2026-10-08 (w8-reverify) AGAINST GOOGLE'S OWN POD-LEVEL FIGURES. === Wave 7 recorded Google's ICI figures as bidirectional aggregates with the typed value being the per-direction half. That is a halving decision, and a halving decision is only defensible if something OUTSIDE the spec table forces it. Two independent things do. (1) Google's own row label, verbatim on both the v5e and v6e spec tables: 'Bidirectional inter-chip interconnect (ICI) bandwidth (per chip) 400 GBps' / '... 800 GBps'. The word 'Bidirectional' is Google's, and the table gives the port count beside it ('ICI ports per chip 4'), so the figure is an aggregate per chip, not per port and not per direction. (2) THE CLOSING ARITHMETIC, which is the real proof and is reproduced here so it does not have to be re-derived: Google publishes the all-reduce bandwidth per pod for the same generations. v5e: 'All-reduce bandwidth per Pod 51.2 TB/s' with a 256-chip pod; 256 x 200 GB/s per direction = 51.2 TB/s, EXACTLY. v6e: 'All-reduce bandwidth per Pod 102.4 TB/s' with a 256-chip pod; 256 x 400 GB/s per direction = 102.4 TB/s, EXACTLY. Both close on the HALVED figure and both would be 2x too high on the unhalved one. So an all-reduce over 256 chips at the per-direction rate reproduces Google's published pod collective bandwidth to the digit - the halving is what Google's own numbers require, not a convention this repo imposed on them. (3) A unit trap in the same table, recorded so it is not re-fallen-into: Google writes 'GBps' for the ICI row and 'Gbps'/'Tbps' for the DCN and NIC rows of the SAME table, so the units are mixed within one sheet and ICI figures are gigabytes. WHAT WAS ALSO VERIFIED AND IS CORRECT: v4 has no per-chip ICI bandwidth published (Google gives six links per chip and pod-level 1.1 PB/s all-reduce / 24 TB/s bisection but no per-chip GB/s), so its typed null is the honest value and not a gap to fill by dividing 1.1 PB/s by 4096 - that would be an artefact of the collective algorithm's overlap, not a link rate. v5p's 1200 GBps -> 600 per-direction is labelled 'Bidirectional inter-chip interconnect (ICI) bandwidth per chip' on the live v5p table and carries no port count, so no per-port figure is derivable and none is recorded.
2026-10-10: set null_bandwidth=sourcing. The record's own bandwidth_basis already says this; the field only names the case. No number changed. Same as v3: pod all-reduce 1.1 PB/s and a link count of six, but no per-chip GB/s, and the basis refuses the division. Aggregate published, per-link rate not.
Cross-references
This record references no other records — it is a leaf. It is cited by 2.