Safeguard
Supply Chain Security•

AI Chips Compared 2026: B200, H200, MI355X, Gaudi 3, TPU, Trainium

Every metric for today's AI chips side by side: dense and sparse throughput by precision, HBM, interconnect, power, rack scale, software, prices and MLPerf results.

Safeguard Security Team
65 min read

No single AI chip wins on every metric in 2026. On vendor peak figures, NVIDIA's B300 and AMD's MI355X lead per chip on low precision throughput and memory (288 GB of HBM3E at 8 TB/s each), Google's Ironwood TPU and NVIDIA's NVL72 racks lead on scale-up domain size, and AWS Trainium2 and Google's TPUs have the lowest public hourly prices per chip. Which one is "fastest" depends on whether you are training, processing prompts (prefill) or generating tokens (decode), because each of those stresses a different metric.

This post puts the current data center accelerators from NVIDIA, AMD, Intel, Google and AWS side by side, one table per metric family: peak throughput at each precision, dense and sparse; memory capacity, bandwidth and type; scale-up and scale-out interconnect; power and performance per watt; form factor and rack scale; software stack; and availability with public prices. It then shows which metric matters for training, prefill and decode with worked numbers, and closes with measured MLPerf results, named by round and submitter.

Every specification comes from the vendor's own documentation, every measured result from MLCommons, and every price from a public list or reservation price page that we checked on 25 October 2026. All links are in the Sources section. Every derived number (ratios, per-chip splits, cost estimates) was computed with Python. Where a vendor has not published a figure, the table says so rather than guessing. The code in this post is plain Python that we ran on a Mac; we did not run anything on the accelerators themselves.

Key takeaways

  • Peak FLOPS are not comparable until you normalise them. NVIDIA publishes most Tensor Core figures "with sparsity", which is twice the dense rate. AMD publishes both. Google, Intel and AWS mostly publish dense figures. Every table below states dense or sparse and the precision.
  • Per chip, on vendor peak figures, the 2025 and 2026 parts roughly double the 2023 parts on dense BF16 and FP8. The NVIDIA B200 and B300 list 2.25 PFLOPS dense BF16 per GPU in an HGX system, the AMD MI355X 2.5 PFLOPS, Google's Ironwood 2.3 PFLOPS, against about 0.99 PFLOPS for the H100 and H200.
  • FP4 is where the newest chips separate. The B300 lists 13.5 PFLOPS dense FP4 per GPU (15 PFLOPS per GPU in the NVL72 rack), the MI355X 10.1 PFLOPS of MXFP4, the B200 9 PFLOPS. Older chips have no FP4 path at all.
  • Memory bandwidth decides decode speed. Generating one token at batch size 1 reads every weight once, so the 8 TB/s parts (B200, B300, MI355X) and Ironwood at about 7.4 TB/s set the upper bound for single-stream decode, well ahead of the 3.35 TB/s H100.
  • Scale-up domain size matters for very large models. An HGX or AMD 8-GPU node has an 8-chip fast domain; the GB200 and GB300 NVL72 racks have 72; a Trainium2 UltraServer has 64; TPU pods connect 256 (v5e, v6e), 8,960 (v5p) or 9,216 (Ironwood) chips over inter-chip links.
  • Measured results narrow the gaps that peak figures suggest. In MLPerf Inference v6.0, Llama 2 70B Offline, the top 8-GPU MI355X result (AMD) and the top 8-GPU B200 result (HPE) were within about half a percent of each other per accelerator, both using FP4 weights.
  • Prices are public for cloud only, and only for some chips. AWS, Azure and Google Cloud publish hourly prices; we found no public purchase price list for any of these accelerators.

How to read an AI chip comparison without being misled

Before the tables, five rules that apply to every number below.

Rule 1: peak is not achieved. A vendor's peak figure is the number of multiply and add operations the matrix units can retire per second at the maximum clock, with every unit busy. Real training jobs reach a fraction of it. Meta's Llama 3 paper reports an overall BF16 model FLOPs utilisation (MFU) of 38 to 43 percent on its H100 training clusters of 8,192 and 16,384 GPUs. That is a well tuned, very large job; smaller teams often see less.

Rule 2: dense and sparse figures differ by a factor of two. NVIDIA's and AMD's matrix units support 2:4 structured sparsity: if two of every four weights in a block are zero, the hardware skips them and doubles its effective rate. Very few production language models are trained or served in that format. A sparse figure is useful only if your model is actually 2:4 sparse, so this post leads with dense numbers.

Rule 3: the precision has to match. FP8 is roughly twice BF16 on most of these chips; FP4 is roughly twice FP8 on the chips that support it. Comparing one chip's FP4 number with another's FP8 number makes a 2x difference out of nothing. MLPerf results also record the weight data type, which matters for the same reason.

Rule 4: per chip, per node and per rack are different units. NVIDIA quotes the GB200 and GB300 at rack scale (72 GPUs), DGX and HGX at node scale (8 GPUs), and H100 and H200 per GPU. AWS quotes Trainium2 per chip, per 16-chip instance and per 64-chip UltraServer. Google quotes TPUs per chip and per pod. We have divided where the vendor's own totals allow it, and say so.

Rule 5: a chip is only as good as its software path. A model that runs well on CUDA may need porting work on ROCm, the Intel Gaudi software suite, XLA for TPUs or the AWS Neuron SDK. That cost is real, does not appear in any spec table, and is covered in its own section below.

The chips in this comparison

VendorChipGeneration or architectureForm factorPrimary source used
NVIDIAH100 SXMHopperSXM module, HGX and DGX 8-GPU boardsH100 product page
NVIDIAH200 SXMHopper with HBM3ESXM module, HGX 4 or 8 GPUH200 product page (specs marked preliminary)
NVIDIAB200BlackwellSXM module in HGX B200 and DGX B200HGX and DGX B200 pages
NVIDIAB300Blackwell UltraSXM module in HGX B300 and DGX B300HGX, DGX B300 pages, Blackwell Ultra technical blog (22 Aug 2025)
NVIDIAGB200 and GB300 NVL72Grace CPU plus Blackwell or Blackwell Ultra GPUs72-GPU liquid cooled rackGB200 NVL72 and GB300 NVL72 pages
AMDInstinct MI300XCDNA 3OAM moduleMI300X product page (launch date 6 Dec 2023)
AMDInstinct MI325XCDNA 3 with HBM3EOAM moduleMI325X product page (launch date 10 Oct 2024)
AMDInstinct MI355XCDNA 4OAM moduleMI355X product page (launch date 12 Jun 2025)
IntelGaudi 3Gaudi, fifth generation MMEOAM (HL-325L) and PCIe card (HL-338)Gaudi 3 white paper, July 2025 revision
GoogleTPU v5e, v5p, v6e (Trillium)TPUCloud TPU slices and podsCloud TPU documentation
GoogleTPU7x (Ironwood)TPUCloud TPU, 256 or 9,216 chip podsCloud TPU documentation, Google blog (9 Apr 2025)
AWSTrainium2NeuronCore-v3Trn2 instances and UltraServersAWS Neuron documentation
AWSTrainium3NeuronCore-v4Trn3 instancesAWS Neuron documentation
AWSInferentia2NeuronCore-v2Inf2 instancesAWS Neuron documentation

We left out chips without public specification pages at this level of detail. Where a vendor publishes a later variant (for example the H100 NVL or H200 NVL PCIe cards), we mention it only where it changes a conclusion.

Metric family 1: peak throughput by precision, dense and sparse

This is the table most comparisons stop at. All figures are vendor peak figures in TFLOPS (or TOPS for INT8). "Dense" means without structured sparsity. Where the vendor publishes only a sparse figure and states that dense is half, we show the dense value as half and mark it.

NVIDIA, per GPU

PrecisionH100 SXMH200 SXMB200 (HGX, per GPU)B300 (HGX, per GPU)
FP64 vector343437 (FP64 and FP64 Tensor Core, from 296 per 8 GPUs)1.25 (from 10 per 8 GPUs)
FP64 Tensor Core6767as aboveas above
FP32676775 (from 600 per 8 GPUs)75
TF32 Tensor Core, sparse / dense989 / 494.5989 / 494.52,250 / 1,1252,250 / 1,125
BF16 and FP16 Tensor Core, sparse / dense1,979 / 989.51,979 / 989.54,500 / 2,2504,500 / 2,250
FP8 Tensor Core, sparse / dense3,958 / 1,9793,958 / 1,9799,000 / 4,500 (FP6 same)9,000 / 4,500 (FP6 same)
INT8 Tensor Core, sparse / dense3,958 / 1,979 TOPS3,958 / 1,979 TOPS9,000 / 4,500 TOPS375 / 187.5 TOPS
FP4 Tensor Core, sparse / densenot supportednot supported18,000 / 9,00018,000 / 13,500

NVIDIA marks H100 and H200 Tensor Core figures "with sparsity"; the HGX table states that FP8, INT8, BF16 and TF32 figures are sparse with dense equal to half, and gives FP4 as "sparse | dense". The B200 and B300 columns are the HGX 8-GPU totals divided by eight, which is our arithmetic, not an NVIDIA per-GPU figure. Two things stand out. First, the B300 trades FP64 and INT8 throughput for FP4: its HGX table lists 10 TFLOPS of FP64 and 3 POPS of sparse INT8 per 8 GPUs, against 296 TFLOPS and 72 POPS for the HGX B200. Second, the B300's dense FP4 rate is 3x its dense FP8 rate rather than the usual 2x, which NVIDIA's Blackwell Ultra technical blog describes as 15 PFLOPS of dense NVFP4 per GPU (the 13.5 PFLOPS here comes from the HGX B300 table; the NVL72 rack works out to 15, as shown below).

NVIDIA rack scale: GB200 NVL72 and GB300 NVL72

Metric (whole rack, 72 GPUs)GB200 NVL72GB300 NVL72
FP4, sparse / dense1,440 / 720 PFLOPS1,440 / 1,080 PFLOPS
FP8 and FP6, sparse720 PFLOPS720 PFLOPS
INT8, sparse720 POPS24 POPS
FP16 and BF16, sparse360 PFLOPS360 PFLOPS
TF32, sparse180 PFLOPS180 PFLOPS
FP325,760 TFLOPS6 PFLOPS
FP64 and FP64 Tensor Core2,880 TFLOPS100 TFLOPS
GPU memory and bandwidth13.4 TB HBM3E, 576 TB/s20 TB, up to 576 TB/s
NVLink bandwidth130 TB/s130 TB/s

Divided by 72, the GB200 NVL72 gives 10 PFLOPS dense FP4, 5 PFLOPS dense FP8 and 2.5 PFLOPS dense BF16 per GPU, slightly above the HGX B200's 9, 4.5 and 2.25. The GB300 NVL72 gives 15 PFLOPS dense FP4 per GPU, matching the Blackwell Ultra blog. The same GPU silicon is listed at different rates in different systems because the systems run it at different power and clock limits, which is one more reason to compare like with like.

AMD Instinct, per GPU

PrecisionMI300XMI325XMI355X
FP64 vector81.781.778.6
FP64 matrix163.4163.478.6
FP32 vector and matrix163.4163.4157.3
TF32 matrix, sparse / dense1,307.4 / 653.71,307.4 / 653.7not listed
FP16 and BF16 matrix, sparse / dense2,614.9 / 1,307.42,614.9 / 1,307.45,000 / 2,500
FP8, sparse / dense5,229.8 / 2,614.95,229.8 / 2,614.910,100 / 5,000 (OCP FP8 and MXFP8)
MXFP6 and MXFP4, densenot supportednot supported10,100
INT8, sparse / dense5,220 / 2,600 TOPS5,220 / 2,600 TOPS10,100 / 5,000 TOPS

AMD publishes both dense and sparse figures on its product pages, so no halving is needed. The MI325X has the same compute as the MI300X; it changes the memory (256 GB of HBM3E at 6 TB/s instead of 192 GB of HBM3 at 5.3 TB/s) and raises board power from 750 W to 1,000 W. The MI355X moves to CDNA 4 on TSMC 3 nm compute dies, roughly doubles dense BF16 and FP8, adds MXFP6 and MXFP4 at 10.1 PFLOPS, and like the B300 gives up FP64 matrix throughput (78.6 TFLOPS, down from 163.4) to spend silicon on low precision.

Intel Gaudi 3

PrecisionGaudi 3 (MME matrix engines)Gaudi 3 (TPC vector cores)
FP81,67857.3
BF161,67828.7
FP1645928.7
TF32459not listed
FP32229not listed

These are Intel's own figures from the Gaudi 3 white paper (July 2025 revision). Intel does not publish a structured sparsity figure, so these are dense. Note two quirks: FP8 and BF16 run at the same matrix rate on Gaudi 3, so moving to FP8 halves memory and traffic but does not double compute, and FP16 runs at well under a third of the BF16 rate, so BF16 is the format to use on this chip.

Google TPUs, per chip

Precisionv5ev5pv6e (Trillium)TPU7x (Ironwood)
BF161974599182,307
FP8not listed4599184,614
INT8393 TOPSnot listed1,836 TOPSnot listed

Google publishes TPU figures as peak compute per chip without a sparsity variant, so these are dense. On v5p and v6e the FP8 figure equals the BF16 figure; Ironwood is the first TPU in this list where FP8 is twice BF16. The Ironwood documentation describes two TensorCores and four SparseCores per chip. SparseCores are separate units for embedding lookups, which matter for recommendation models; they are not structured sparsity in the NVIDIA and AMD sense.

AWS Trainium and Inferentia, per chip

PrecisionInferentia2Trainium2Trainium3
FP3247.5181183
BF16, FP16 and TF32, dense190667671
FP8, dense190 (cFP8)1,2992,517 (MXFP8)
MXFP4, densenot supportednot supported2,517
Sparse (FP8, FP16, BF16, TF32)not listed2,5632,517 (FP16, BF16, TF32 sparse)
INT8380 TOPSnot listednot listed

Trainium3 doubles Trainium2's FP8 rate and adds MXFP4 at the same rate as MXFP8, while BF16 stays essentially flat (667 to 671). AWS states these per chip in the Neuron documentation, alongside per-instance totals.

The dense comparison in one picture

Dense BF16, the precision most training runs still use for their main matrix multiplies, per chip, vendor peak. Each block is 100 TFLOPS.

Dense BF16 TFLOPS per chip (vendor peak, rounded to the nearest 100 for the bar)
TPU v5e            197  ##
Inferentia2        190  ##
TPU v5p            459  #####
Trainium2          667  #######
Trainium3          671  #######
TPU v6e            918  #########
H100 / H200        990  ##########
MI300X / MI325X  1,307  #############
Gaudi 3          1,678  #################
B200 / B300      2,250  ######################   (HGX, per GPU)
TPU7x Ironwood   2,307  #######################
MI355X           2,500  #########################
GB200 in NVL72   2,500  #########################  (rack total / 72)

And dense FP8, which most inference and an increasing share of training now uses:

Dense FP8 TFLOPS per chip (vendor peak)
TPU v5p            459  #####
TPU v6e            918  #########
Trainium2        1,299  #############
Gaudi 3          1,678  #################
H100 / H200      1,979  ####################
Trainium3        2,517  #########################
MI300X / MI325X  2,615  ##########################
B200 / B300      4,500  #############################################
TPU7x Ironwood   4,614  ##############################################
MI355X           5,000  ##################################################
GB200 in NVL72   5,000  ##################################################

The picture is a ranking of peak arithmetic and nothing more. A chip with a lower peak but more memory, a bigger scale-up domain, a lower price or a better software fit for your model can deliver more useful work per dollar. The remaining metric families are where that shows up.

Metric family 2: memory capacity, bandwidth and type

For large language models, memory is at least as important as arithmetic. Capacity decides how many chips you need to hold the weights and the KV cache. Bandwidth decides how fast decode runs. The ratio of compute to bandwidth decides which workloads are compute bound.

ChipCapacityTypeBandwidthNotes from the vendor source
H100 SXM80 GBHBM3 (per NVIDIA's Hopper architecture blog)3.35 TB/sH100 NVL card: 94 GB at 3.9 TB/s
H200 SXM141 GBHBM3E4.8 TB/sSpecs marked preliminary by NVIDIA
B200180 GBHBM3E8 TB/sDGX B200: 1,440 GB and 64 TB/s for 8 GPUs
B300up to 288 GBHBM3E8 TB/sEight 12-high stacks, 8,192-bit interface; capacity varies by SKU
GB200 (in NVL72)186 GB average (13.4 TB / 72)HBM3E8 TB/sNVIDIA lists 372 GB per Grace Blackwell superchip (2 GPUs)
GB300 (in NVL72)about 278 GB average (20 TB / 72)HBM3E8 TB/sRack total, our division
MI300X192 GBHBM35.3 TB/s8,192-bit interface, 256 MB Infinity Cache
MI325X256 GBHBM3E6 TB/sSame die as MI300X
MI355X288 GBHBM3E8 TB/s256 MB Infinity Cache
Gaudi 3128 GBHBM2e3.7 TB/sEight HBM2e stacks; 96 MB on-die SRAM at 12.8 TB/s read
TPU v5e16 GBHBM800 GiB/s (about 859 GB/s)
TPU v5p95 GiB (about 102 GB)HBM2,765 GB/s
TPU v6e32 GBHBM1,638 GB/s
TPU7x Ironwood192 GiB (about 206 GB)HBMabout 7.37 TB/s
Inferentia232 GiBHBM820 GiB/s
Trainium296 GiBHBM2.9 TB/s224 MiB on-chip SBUF
Trainium3144 GiBHBM4.9 TB/s256 MiB on-chip SBUF

Watch the units. Google and AWS publish some capacities in GiB (2 to the 30th bytes) and NVIDIA and AMD in GB (10 to the 9th). 192 GiB is about 206 GB, so Ironwood holds slightly more per chip than a 192 GB MI300X. Where the vendor page did not name the HBM generation, we wrote "HBM" rather than guess. One small inconsistency is worth knowing about: Microsoft's documentation for its ND GB200 v6 virtual machines lists each Blackwell GPU with 192 GiB, while NVIDIA's rack table works out to 186 GB per GPU. The difference is likely between physical capacity and usable capacity, but neither page says so.

Two derived ratios that predict behaviour

The first ratio is the ridge point of the roofline model (Williams, Waterman and Patterson, 2009): peak FLOPS divided by memory bandwidth, in FLOPs per byte. A kernel whose arithmetic intensity is below the ridge point is memory bound on that chip; above it, compute bound. The second is capacity per unit of compute, in GB per dense BF16 TFLOPS, which hints at how much memory each unit of arithmetic has to work with.

ChipRidge point, dense BF16 (FLOP per byte)Ridge point, dense FP8GB of HBM per dense BF16 TFLOPS
H100 SXM2955910.081
H200 SXM2064120.142
B200 (HGX)2815620.080
B300 (HGX)2815620.128
MI300X2474930.147
MI325X2184360.196
MI355X3136250.115
Gaudi 34544540.076
TPU v5e229not listed0.081
TPU v5p1661660.222
TPU v6e5605600.035
TPU7x Ironwood3136250.089
Trainium22304480.155
Trainium31375140.230

Read it like this. Decoding one token for one user does about 2 FLOPs per weight while reading each weight once, so at FP8 weights its arithmetic intensity is about 2 FLOPs per byte, and at BF16 about 1. Every chip in the table has a ridge point in the hundreds, so single-stream decode is deeply memory bound everywhere, and bandwidth sets its speed. Batching many users together reuses each weight read across the batch, and the intensity rises roughly in proportion to the batch size until it crosses the ridge point. A chip with a high ridge point and little memory, such as the TPU v6e (560 FLOP per byte, 32 GB), needs large batches, and therefore memory for a large KV cache, before its compute is fully used. A chip with a low ridge point, such as the H200 or the TPU v5p, reaches its compute ceiling at smaller batches. Neither is better in general; they suit different serving patterns.

Metric family 3: scale-up and scale-out interconnect

Models that do not fit on one chip are split across many, and then the links between chips matter as much as the chips. There are two tiers. Scale-up links connect a small group of chips with very high bandwidth and low latency, usually inside one node or rack, and carry tensor parallel and expert parallel traffic. Scale-out networks connect those groups across a data center, usually over InfiniBand or Ethernet with RDMA, and carry data parallel and pipeline parallel traffic.

Chip or systemScale-up linkBandwidth per chip (vendor figure)Fast domain sizeScale-out
H100 SXM, H200 SXMNVLink 4 through NVSwitch900 GB/s8 GPUs (HGX)ConnectX-7 InfiniBand or Ethernet; PCIe Gen5 128 GB/s to the host
B200 (HGX, DGX)NVLink 5 through NVSwitch1.8 TB/s8 GPUs, 14.4 TB/s totalDGX B200: 8 ConnectX-7 ports, up to 400 Gb/s each
B300 (HGX, DGX)NVLink 51.8 TB/s8 GPUs, 14.4 TB/s totalDGX B300: 8 ConnectX-8 ports, up to 800 Gb/s each
GB200 and GB300 NVL72NVLink 5 switch trays1.8 TB/s (130 TB/s / 72)72 GPUsInfiniBand or Ethernet; NVIDIA states NVLink 5 supports up to 576 GPUs in a non-blocking fabric
MI300X, MI325XInfinity Fabric8 links, 128 GB/s peak each8 GPUsPCIe 5.0 x16 to the host and NICs
MI355XInfinity Fabric7 scale-up links at 153 GB/s plus 1 scale-out link at 128 GB/s8 GPUsPCIe 5.0 x16
Gaudi 324 integrated 200 GbE RoCE ports1,200 GB/s bidirectional networking in total8 OAMs: 21 ports per card form an all-to-all mesh (3 ports to each of the 7 peers)The remaining 3 ports per card go to scale-out, 4.8 Tb/s per 8-card board
TPU v5eICI, 4 ports400 GB/s bidirectional256 chips, 2D torus2 x 100 Gbps NICs per host
TPU v6eICI, 4 ports800 GB/s bidirectional256 chips, 2D torus4 x 200 Gbps NICs per host
TPU v5pICI1,200 GB/s bidirectional8,960 chips, 3D torus (largest single job 6,144 chips)50 Gbps DCN per chip
TPU7x IronwoodICI1,200 GB/s bidirectional256 or 9,216 chips100 Gbps DCN per chip
Trainium2NeuronLink-v31.28 TB/s per chip16 per instance, 64 per UltraServerEFAv3, 3.2 Tbps per instance
Trainium3NeuronLink-v42.56 TB/s per chipnot covered in the page we usednot covered in the page we used
Inferentia2NeuronLink-v2not stated on the page we used

The architectural difference is easiest to see in a picture. NVIDIA and AMD build switched or fully connected islands of 8 (or 72), then connect islands with a network. Google builds a torus where every chip links directly to its neighbours, with no switch, and extends it to thousands of chips.

Switched island (HGX, NVL72)              Torus (TPU pod, 2D slice shown)

  GPU0  GPU1  GPU2  GPU3                    T == T == T == T ==+
    \     \   /     /                       |    |    |    |   |
     [ NVSwitch / NVLink switch trays ]     T == T == T == T ==+
    /     /   \     \                       |    |    |    |   |
  GPU4  GPU5  GPU6  GPU7                    T == T == T == T ==+
                                            |    |    |    |   |
  any GPU to any GPU: one switch hop        T == T == T == T ==+
  at full NVLink rate                       +====+====+====+  (wraps around)
                                            each chip talks to its neighbours
                                            directly; far chips take several hops

Fully connected mesh (MI300X / MI355X 8-GPU, Gaudi 3 8-OAM)
  every OAM has a direct link (or a group of 3 Ethernet ports on Gaudi 3)
  to every other OAM; no switch chip, but bandwidth to one peer is a fraction
  of the chip's total link bandwidth

The trade-offs follow from the shapes. A switch gives every GPU full bandwidth to any other GPU in the domain, which suits all-to-all traffic such as mixture of experts routing, but switch chips cost power and money and the domain ends at the edge of the switch. A torus has no switches and scales to thousands of chips, but traffic between distant chips crosses several hops, so the compiler and the parallelism layout have to keep heavy traffic between neighbours. A fully connected mesh is cheap and simple for 8 chips but does not grow beyond that without an external network, and any single pair of chips gets only one link's worth of bandwidth (for example 128 GB/s on MI300X, or 3 x 200 Gb/s, which is 75 GB/s per direction, between two Gaudi 3 cards).

A worked number: why scale-up bandwidth matters for tensor parallelism

Under tensor parallelism, every transformer layer ends with an all-reduce of the activations across the tensor parallel group. Take a model with hidden size 8,192, a micro-batch of 16 sequences of 4,096 tokens, and BF16 activations. One layer's activation tensor is 16 x 4,096 x 8,192 x 2 bytes, about 1.07 GB. A ring all-reduce moves about 2 x (n - 1) / n of that per GPU, so with 8 GPUs about 1.88 GB per GPU per all-reduce. With two all-reduces per layer in the forward pass (after attention and after the MLP), that is about 3.76 GB per layer per GPU. At NVLink 4's 900 GB/s (which is bidirectional, so about 450 GB/s each way) that is roughly 8 ms per layer; at NVLink 5's 1.8 TB/s, roughly 4 ms. Over 80 layers the communication alone is 0.67 seconds or 0.33 seconds per forward pass, unless it overlaps with compute. This is why tensor parallelism is normally kept inside the fast domain, and why a larger fast domain (72 GPUs on NVL72, 64 on a Trainium2 UltraServer) lets larger models use tensor or expert parallelism without touching the slower scale-out network. These numbers are illustrative; real frameworks overlap communication with compute and use different collective algorithms.

Metric family 4: power and performance per watt

Power is where vendor documentation is least comparable. NVIDIA and AMD publish per-module power for some parts; NVIDIA publishes only system power for its Blackwell DGX systems on the pages we used; Google publishes efficiency ratios and pod-level power rather than per-chip power; AWS does not publish Trainium power on the pages we used.

Chip or systemVendor power figureWhat it coversDense FP8 TFLOPS per watt (our division)
H100 SXMup to 700 W (configurable)GPU module2.83
H200 SXMup to 700 W (configurable)GPU module2.83
MI300X750 W typical board powerOAM module3.49
MI325X1,000 W typical board powerOAM module2.61
MI355X1,400 W typical board power (the MI350X runs at lower power)OAM module3.57
Gaudi 3 OAM (HL-325L)up to 900 WOAM module1.86
Gaudi 3 PCIe (HL-338)up to 600 WPCIe cardnot computed: the white paper does not give the card's peak throughput separately
DGX B200about 14.3 kW maximumwhole 8-GPU system with CPUs, NICs, fans, storage2.52 at system level (5.03 at dense FP4)
DGX B300about 14 kWwhole 8-GPU system2.57 at system level (7.71 at dense FP4)
TPU7x Ironwood pod"nearly 10 MW" for 9,216 chips; perf per watt 2x Trilliumwhole podabout 4.25 at pod level, a loose upper estimate
TPU v5e, v5p, v6enot published per chip in the documents usednot computed
Trainium2, Trainium3, Inferentia2not published in the documents usednot computed

The module-level and system-level numbers cannot be compared directly. A DGX system's 14.3 kW includes two host CPUs, eight NICs, two DPUs, NVSwitch chips, fans and storage, so dividing by eight (1,787 W per GPU slot) overstates the GPU's own draw by a large margin. The H100's 2.83 TFLOPS per watt is a module figure and the DGX B200's 2.52 is a whole-system figure; on a like-for-like basis the B200 is more efficient than the H100, but the documents we used do not let us say by exactly how much. The Ironwood pod figure divides Google's 42.5 exaflops (FP8, 9,216 chips times 4,614 TFLOPS, which our arithmetic confirms) by "nearly 10 MW" and includes everything in the pod; treat it as an order of magnitude, not a measurement.

Two practical points matter more than the per-watt ranking. First, the newest parts are liquid cooled at rack scale: Google describes the 9,216-chip Ironwood pod as liquid cooled, the GB300 NVL72 is "fully liquid-cooled", and the MI355X page lists both passive and active cooling options. A facility designed for air-cooled 700 W modules cannot simply take 1,400 W modules. Second, MLPerf has a power measurement track, and that is the only place where measured performance per watt under the same rules is published; most submissions do not include power.

Metric family 5: form factor and rack scale

What you actually buy or rent is a system, not a chip. The building blocks differ more than the chips do.

Building blockChipsWhat it isPublished totals
NVIDIA HGX H100 or H2004 or 8 GPUsSXM baseboard with NVSwitch, sold inside partner serversH200: 141 GB per GPU
NVIDIA DGX B2008 B20010 RU server with two Xeon Platinum 8570 CPUs1,440 GB HBM3E, 72 PFLOPS dense FP4, about 14.3 kW
NVIDIA DGX B3008 B30010 U server with ConnectX-8 networking2.1 TB HBM3E, 108 PFLOPS dense FP4, about 14 kW
NVIDIA GB200 NVL7272 B200 plus 36 Grace CPUsLiquid cooled rack, one NVLink domain13.4 TB HBM3E, 720 PFLOPS dense FP4, 17 TB LPDDR5X CPU memory
NVIDIA GB300 NVL7272 Blackwell Ultra plus 36 GraceLiquid cooled rack20 TB HBM, 37 TB "fast memory" including CPU memory, 1,080 PFLOPS dense FP4
AMD Instinct platform8 OAMOCP UBB baseboard in partner serversMI355X: 8 x 288 GB = 2,304 GB
Intel Gaudi 3 HLB-3258 OAMUniversal baseboard, all-to-all RoCE mesh8 x 128 GB = 1,024 GB
Google TPU v5e and v6eup to 256 chips per pod8 chips per host, 2D torus slices from 1 to 256 chipsv6e pod: 234.9 PFLOPS BF16
Google TPU v5pup to 8,960 chips per pod4 chips per VM, 64-chip cubes, 3D toruslargest slice 6,144 chips
Google TPU7x Ironwood256 or 9,216 chipsliquid cooled pods42.5 exaflops FP8 at 9,216 chips
AWS trn2.48xlarge16 Trainium2EC2 instance1.5 TiB HBM, 20.8 PFLOPS dense FP8
AWS Trn2 UltraServer64 Trainium2four trn2u.48xlarge instances joined by NeuronLink-v36 TiB HBM, 83.2 PFLOPS dense FP8

Two derived observations. A GB300 NVL72 rack holds about 20 TB of HBM in a single NVLink domain, enough for the FP8 weights of a dense 1 trillion parameter model (about 1 TB) many times over, with most of the remainder available for KV cache. A Trainium2 UltraServer holds 6 TiB in one NeuronLink domain. An 8-GPU HGX B200 node holds 1.44 TB; an 8-GPU MI355X node 2.3 TB. Those capacities determine how many nodes one model replica needs, which in turn decides whether the model's tensor and expert parallel traffic stays on the fast links.

Metric family 6: software stack

The software stack is the metric with no number, and often the one that decides the project. Each vendor ships its own compiler, kernel libraries, collective communication library and framework integration, and each has a different ecosystem around it.

VendorProgramming model and compilerKernel and math librariesCollectivesFramework and serving support named in vendor docs
NVIDIACUDA and PTX, with higher level languages such as Triton on topcuBLAS, cuDNN, Transformer Engine for FP8NCCLPyTorch, JAX, TensorRT-LLM; the widest third-party support of the five
AMDROCm with HIP (CUDA-like C++)rocBLAS, MIOpen and other ROCm librariesRCCLPyTorch and vLLM; AMD's MLPerf submissions list vLLM and PyTorch on ROCm 6.4.1 (v5.1) and PyTorch on ROCm 7.0.0 (v6.0)
IntelIntel Gaudi software suite: graph compiler, TPC programming for custom kernelsGaudi kernel librariesGaudi collectives over integrated RoCEPyTorch (1.x and 2.x), DeepSpeed, Hugging Face, vLLM, Ray, per the white paper
GoogleXLA compiler; Pallas for custom TPU kernelsXLA-generated kernelsICI collectives handled by XLAJAX, PyTorch/XLA, Pathways for multi-host serving
AWSNeuron SDK and compiler; custom operators on the GPSIMD enginesNeuron libraries16 dedicated CC-Cores per chip orchestrate collectivesPyTorch via torch-neuronx

In practice, three questions settle the software metric for a given team. Does your model's architecture (attention variant, mixture of experts routing, quantisation format) have a tuned kernel on that stack today? Does your serving framework support that chip as a first-class target, including the low-precision format you plan to use? And how much engineering time can you spend porting and tuning? The answers change month to month, so check the vendor's current release notes for your model rather than relying on a general reputation.

Every one of these stacks is also a large set of versioned software components: drivers, runtimes, compilers, math and collective libraries, container toolkits and framework builds. Each ships security fixes on its own schedule. We come back to that in the Safeguard section.

Metric family 7: availability and public prices

ChipBuy hardware?Rent in public cloud?Public list price we found (checked 25 Oct 2026)
H100Yes, in HGX and DGX systems from NVIDIA and partnersYes, many cloudsAWS Capacity Blocks p5.48xlarge: $47.757 per hour for 8 GPUs ($5.970 per GPU-hour). Azure ND96isr H100 v5, East US, Linux pay as you go: $98.32 per hour for 8 GPUs ($12.29 per GPU-hour)
H200YesYesAWS Capacity Blocks p5en.48xlarge: $63.158 per hour ($7.895 per GPU-hour)
B200YesYesAWS Capacity Blocks p6-b200.48xlarge: $113.666 per hour ($14.208 per GPU-hour)
B300YesYesAWS Capacity Blocks p6-b300.48xlarge: $129.168 per hour ($16.146 per GPU-hour)
GB200 NVL72Yes, rack scaleYesAWS Capacity Blocks u-p6e-gb200x72 (Dallas Local Zone): $761.904 per hour for 72 GPUs ($10.582 per GPU-hour). Azure ND128isr NDR GB200 v6, East US: $108.16 per hour for a 4-GPU VM ($27.04 per GPU-hour)
MI300X, MI325X, MI355XYes, from server OEMsYes, in several cloudsNo price on the pages we used
Gaudi 3Yes, OAM and PCIe from server OEMsSome cloudsNo price on the pages we used
TPU v5e, v5p, v6e, IronwoodNo public purchase option found; offered as Google Cloud TPUGoogle CloudPer chip-hour, on demand: v5e $1.20 (us-central1), v5p $4.20 (us-east5), v6e $2.70 (us-east1), Ironwood $12.00 (us-central1). One-year commitment: $0.84, $2.94, $1.89, $8.40. Three-year: $0.54, $1.89, $1.22, $5.40
Trainium2No public purchase option found; offered as EC2 instancesAWSAWS Capacity Blocks trn2.48xlarge (US East Ohio): $35.7608 per hour for 16 chips ($2.235 per chip-hour)

Read the price column with care. AWS Capacity Blocks are reservations for a fixed future window, priced by AWS "based on trends in supply and demand" and next due for an update in January 2027 according to the page; they are not on-demand prices. Azure's figures come from its public retail prices API for pay-as-you-go Linux VMs. Google's are its published Cloud TPU list prices per chip-hour. Prices vary by region, by commitment and over time, and negotiated prices are usually lower. The site's GPU rental prices post explains why they move.

Price per unit of peak compute and per unit of bandwidth

Dividing the hourly price by the chip's peak gives a crude but useful first filter: what a peak dense BF16 PFLOP-hour and a TB/s-hour of memory bandwidth cost on each offer. These are estimates built from the stated list prices and vendor peak figures only.

Offer (list price as above)Price per chip-hourPer dense BF16 PFLOP-hourPer TB/s of HBM bandwidth per hour
H100, AWS Capacity Block$5.970$6.03$1.78
H200, AWS Capacity Block (p5en)$7.895$7.98$1.64
B200, AWS Capacity Block$14.208$6.31$1.78
B300, AWS Capacity Block$16.146$7.18$2.02
Trainium2, AWS Capacity Block$2.235$3.35$0.77
H100, Azure pay as you go$12.29$12.42$3.67
GB200, Azure pay as you go$27.04$10.82$3.38
TPU v5e, Google on demand$1.20$6.09$1.40
TPU v5p, Google on demand$4.20$9.15$1.52
TPU v6e, Google on demand$2.70$2.94$1.65
TPU7x Ironwood, Google on demand$12.00$5.20$1.63

On this crude measure the TPU v6e and Trainium2 offers are the cheapest per peak BF16 PFLOP-hour and Trainium2 the cheapest per unit of bandwidth. Do not stop here. Peak per dollar ignores achieved utilisation, which differs by chip and by software maturity for your model; it ignores memory capacity (a 32 GB v6e needs many more chips than a 288 GB MI355X to hold a large model, and those extra chips add communication); and it ignores the cost of porting. It is a starting filter, not an answer.

Which metric matters for training, prefill and decode

Large language model work splits into three phases with different bottlenecks. The research paper that set out this split most clearly for inference is Pope and colleagues' "Efficiently Scaling Transformer Inference" (2022); the training side follows from the scaling law literature.

PhaseWhat happensBottleneckMetric to compare firstMetric to compare second
Pre-trainingForward and backward passes over trillions of tokensCompute, then communicationDense BF16 or FP8 TFLOPS times achievable MFUScale-up domain size and bandwidth; scale-out network
Fine-tuning (full or LoRA)Same as training, fewer tokensCompute and memory capacityMemory capacity (fewer chips per replica)Dense TFLOPS
Prefill (prompt processing)All prompt tokens processed in parallelComputeDense FP8 or FP4 TFLOPSMemory capacity for long prompts
Decode (token generation)One token per sequence per step, every weight read each stepMemory bandwidth, then KV cache capacityHBM bandwidthHBM capacity (batch size and context length)
Mixture of experts servingTokens routed to a few experts per layerAll-to-all communication plus bandwidthScale-up domain size and bandwidthHBM capacity (all experts must be resident)

Training: compute times utilisation

The standard estimate for training compute is about 6 x N x D floating point operations, where N is the parameter count and D the number of training tokens (Kaplan and colleagues, 2020). The Chinchilla paper (Hoffmann and colleagues, 2022) found that compute-optimal training uses roughly 20 tokens per parameter. Take a dense 70 billion parameter model trained on 1.4 trillion tokens (20 tokens per parameter): 6 x 70e9 x 1.4e12 is 5.88 x 10 to the 23rd FLOPs.

Divide by each chip's dense BF16 peak times an assumed MFU of 35 to 45 percent (a range around the 38 to 43 percent the Llama 3 paper reports for H100s), and multiply by the list price. The table is an estimate built entirely from those stated assumptions; it is not a measurement.

Chip and price usedChip-hours (45% to 35% MFU)Estimated cost at that priceWall-clock days on 1,024 chips
H100, AWS Capacity Block $5.970366,815 to 471,619$2.19M to $2.82M14.9 to 19.2
H200, AWS Capacity Block $7.895366,815 to 471,619$2.90M to $3.72M14.9 to 19.2
B200, AWS Capacity Block $14.208161,317 to 207,407$2.29M to $2.95M6.6 to 8.4
B300, AWS Capacity Block $16.146161,317 to 207,407$2.60M to $3.35M6.6 to 8.4
Trainium2, AWS Capacity Block $2.235544,172 to 699,650$1.22M to $1.56M22.1 to 28.5
TPU v5p, Google on demand $4.20790,769 to 1,016,703$3.32M to $4.27M32.2 to 41.4
TPU v6e, Google on demand $2.70395,384 to 508,351$1.07M to $1.37M16.1 to 20.7
TPU7x Ironwood, Google on demand $12.00157,331 to 202,283$1.89M to $2.43M6.4 to 8.2
H100, Azure pay as you go $12.29366,815 to 471,619$4.51M to $5.80M14.9 to 19.2

The big caveat is the assumption that every chip reaches the same MFU. That is unlikely. MFU depends on the software stack's maturity for your model, on memory capacity (small-memory chips need more model parallelism and so more communication), and on the interconnect. The TPU v6e looks cheap here, but with 32 GB per chip a 70B training run needs aggressive sharding across many chips, which tends to lower MFU. The H200 shows the same hours as the H100 because its peak compute is the same; its extra memory helps by allowing larger micro-batches or less parallelism, which can raise MFU, but the formula cannot see that. The series' other posts work through training cost by model size in more detail.

Prefill: compute bound

Processing a prompt of P tokens through a model of N parameters takes about 2 x N x P FLOPs for the weight matrix multiplies (attention adds more for long prompts). For a 70B model and a 4,096-token prompt that is 5.73 x 10 to the 14th FLOPs. All tokens in the prompt are processed together, so the arithmetic intensity is high and prefill is compute bound. The ideal time on one chip at dense FP8 peak, and at an assumed 50 percent utilisation, would be:

ChipDense FP8 or BF16 peak usedIdeal timeAt 50% utilisation
H100 SXM1,979 TFLOPS FP80.29 s0.58 s
B200 (HGX)4,500 TFLOPS FP80.13 s0.25 s
MI355X5,000 TFLOPS FP80.11 s0.23 s
Gaudi 31,678 TFLOPS FP80.34 s0.68 s
TPU7x Ironwood4,614 TFLOPS FP80.12 s0.25 s
Trainium21,299 TFLOPS FP80.44 s0.88 s
TPU v6e918 TFLOPS BF160.62 s1.25 s

A 70B model at FP8 needs about 70 GB for weights alone, so on the H100 (80 GB), Gaudi 3 (128 GB) and TPU v6e (32 GB) it would in practice span several chips; the table shows the compute cost per chip-equivalent, which is what matters for cost per prompt token. Time to first token for a user is then roughly this compute time divided by the number of chips working on the prompt, plus communication and queueing.

Decode: bandwidth bound

At batch size 1, generating each token reads every weight once. The upper bound on tokens per second for one sequence is memory bandwidth divided by the bytes of weights read per token. For a 70B model with FP8 weights (70 GB) and an 8B model with BF16 weights (16 GB):

ChipHBM bandwidth70B FP8, upper bound tokens/s per sequence (one chip's bandwidth)8B BF16, upper bound tokens/s per sequence
H100 SXM3.35 TB/s47.9209
H200 SXM4.8 TB/s68.6300
B200 / B3008 TB/s114.3500
MI300X5.3 TB/s75.7331
MI355X8 TB/s114.3500
Gaudi 33.7 TB/s52.9231
TPU v6e1.638 TB/s23.4102
TPU7x Ironwood7.38 TB/s105.4461
Trainium22.9 TB/s41.4181

These are ceilings that ignore the KV cache, kernel overheads and communication; real systems reach a fraction of them. When a model is split across k chips with tensor parallelism, each chip reads 1/k of the weights per token, so the ceiling rises roughly k-fold until communication dominates. For example, eight H100s holding a 70B FP8 model have 26.8 TB/s in total, a ceiling of about 383 tokens per second per sequence.

Batching is what makes decode economical. With B sequences in a batch, each weight read serves B tokens, so throughput rises almost linearly with B until either compute or memory capacity runs out. Memory runs out first in most cases because of the KV cache. Take an assumed 70B architecture with 80 layers, grouped query attention with 8 key-value heads of dimension 128, and a BF16 KV cache. Each token needs 80 x 8 x 128 x 2 (key and value) x 2 bytes, which is 327,680 bytes, or about 0.33 MB. At a context of 4,096 tokens and a batch of 64 sequences that is about 85.9 GB, more than the 70 GB of FP8 weights. Weights plus cache come to about 156 GB: too much for one H200 (141 GB), comfortable on one B200 (180 GB) or MI355X (288 GB). An FP8 KV cache halves the cache to about 43 GB. This arithmetic is why memory capacity, not just bandwidth, has become a headline metric for inference chips, and why the 256 GB and 288 GB parts are marketed for serving. The self-hosting cost per million tokens post walks through the same logic for cost.

Measured performance: MLPerf highlights

Vendor peaks tell you what a chip could do. MLPerf, run by the MLCommons consortium, is the industry's peer-reviewed benchmark where submitters run fixed models to a fixed accuracy target under fixed rules, and the results are published with the full system description and code. The inference methodology is described in the MLPerf Inference Benchmark paper (Reddi and colleagues, 2020). Everything in this section comes from MLCommons' own announcements and results files.

Training rounds

RoundPublishedWhat MLCommons reported
MLPerf Training v5.04 June 2025201 results from 20 organisations; 12 unique processors, five newly available: AMD Instinct MI300X 192GB, AMD Instinct MI325X 256GB, NVIDIA GB200, NVIDIA B200-SXM-180GB and Google's TPU Trillium. New Llama 3.1 405B pre-training benchmark replaced GPT-3. First-time submitters included AMD.
MLPerf Training v5.112 November 202565 unique systems, 12 hardware accelerators, 20 organisations including AMD and NVIDIA. Llama 3.1 8B replaced BERT and Flux.1 replaced Stable Diffusion v2. Nearly half the submissions were multi-node.
MLPerf Training v6.016 June 202695 unique systems, 13 hardware accelerators, 24 organisations including AMD, Google and NVIDIA. New DeepSeek V3 benchmark (671 billion total parameters, 37 billion active per token) and GPT-OSS 20B (21 billion total, 3.6 billion active). 60 percent of systems were multi-node; submitters used several different FP4 training recipes.

We have not restated individual time-to-train results here. MLPerf Training scores are computed from several runs with an official scoring method, and copying one number out of context loses the system size and the scoring. Use the MLCommons results table for the round and benchmark you care about, and compare systems of the same size. Two patterns from the announcements are still worth noting. Training v5.0 was the first round with AMD submitting MI300X and MI325X results itself and the first with Google's Trillium TPU. And by v6.0 the two newest benchmarks are both mixture of experts models, which put the all-to-all bandwidth of the scale-up domain under test, not only the matrix units.

Inference: Llama 2 70B across chips

Llama 2 70B is the most widely submitted MLPerf Inference benchmark (MLCommons reported 24 submitters for it in v5.1), which makes it the most useful single benchmark for comparing chips. The table below lists, for each accelerator type, the highest Offline throughput in the closed division, datacenter suite, "available" category, at the 99 percent accuracy target, from the v6.0 (1 April 2026) and v5.1 (9 September 2025) results files. MLPerf reports whole-system throughput; the per-accelerator column is our division of that system result by the number of accelerators, which is not an official MLPerf metric.

RoundAcceleratorSubmitter and result IDAccelerators in systemSystem tokens/sPer accelerator (our division)Weight data type
v6.0NVIDIA GB300NVIDIA, 6.0-0078721,126,85015,651FP4
v6.0NVIDIA B300-SXM-270GBCisco, 6.0-00108115,73014,466FP4
v6.0NVIDIA B200-SXM-180GBHPE, 6.0-00488103,95412,994FP4
v6.0AMD Instinct MI355X 288GBAMD, 6.0-00028103,48012,935FP4
v6.0NVIDIA GB200NVIDIA, 6.0-007572888,05412,334FP4
v6.0AMD Instinct MI325X 256GBMangoBoost, 6.0-0070833,8804,235FP8
v6.0NVIDIA H200-NVL-141GBDell, 6.0-0021832,0044,001FP8
v6.0AMD Instinct MI300X 192GBMangoBoost, 6.0-0069827,5993,450FP8
v5.1NVIDIA B200-SXM-180GBLenovo, 5.1-00618102,90912,864FP4
v5.1NVIDIA H200-SXM-141GBDell, 5.1-0026835,3174,415FP8
v5.1AMD Instinct MI325X 256GBAMD, 5.1-0003834,5554,319FP8
v5.1NVIDIA H100-SXM-80GBCisco, 5.1-001632124,8793,902FP8

What the measured numbers say, with the caveats attached:

  • The B200 and the MI355X were close. In v6.0, AMD's 8 x MI355X system reached 99.5 percent of HPE's 8 x B200 system's Offline throughput, both with FP4 weights. The B300 system from Cisco was about 11 percent above the B200 system. Peak FP4 ratios would have predicted a bigger B300 lead (13.5 against 9 PFLOPS dense); the measured gap is smaller because decode throughput also depends on bandwidth, which is 8 TB/s on all three.
  • The 2025 generation is about 3x the 2023 generation on this test, but part of that is FP4. Per accelerator, the v6.0 B200 result is 2.94 times the v5.1 H200 SXM result. The H200 ran FP8 weights and has no FP4 path, so the comparison mixes hardware and number format. That is a fair comparison of what each chip can do on this benchmark, but not of silicon alone.
  • System scale changes per-chip results. The GB300 NVL72 result is above the 8-GPU B300 result per accelerator, and the GB200 NVL72 result slightly below the 8-GPU B200 result. Rack-scale systems are built for very large models and long contexts, where their 72-GPU NVLink domain matters more than on a 70B model that fits in a few GPUs.
  • Software moves results between rounds. The same MI325X hardware appears in both rounds within a few percent, from different submitters. Submitter choices of serving stack, batch size and kernel tuning matter.
  • Several chips in this post do not appear. The v5.1 and v6.0 inference results files list no TPU, Trainium, Inferentia or Gaudi accelerators in the closed datacenter division; Google's submissions in both rounds used NVIDIA B200, H200 and GB200 systems. Absence from MLPerf is not evidence that a chip is slow, but it means there is no like-for-like measured comparison, and you should ask the vendor for results on your own model.

From MLPerf throughput to an estimated cost per million tokens

Combining an MLPerf result with a public price gives a rough serving cost. This is an estimate built from stated assumptions: the Offline throughput above per accelerator, the AWS Capacity Block price per GPU-hour, 100 percent utilisation and no overheads. Real services run at lower utilisation, with latency targets that lower throughput, so real costs will be higher.

Accelerator, MLPerf resultTokens/s per acceleratorAWS Capacity Block price per GPU-hourEstimated cost per million output tokens
H100 SXM, v5.1 Cisco3,902$5.970$0.42
H200 SXM, v5.1 Dell4,415$7.895$0.50
B200, v6.0 HPE12,994$14.208$0.30
B300, v6.0 Cisco14,466$16.146$0.31

On these assumptions the Blackwell parts are about 27 to 39 percent cheaper per token than Hopper on Llama 2 70B, despite costing 1.8 to 2.7 times as much per hour, because each GPU delivers about 2.9 to 3.7 times the throughput with FP4 weights. Notice also that on these prices the H200 is slightly more expensive per token than the H100: its price premium is larger than its measured throughput gain on this model. That can flip for larger models or longer contexts, where the H200's extra memory allows bigger batches. MI355X, TPU and Trainium cannot be placed in this table without mixing data sources, because the first has no public AWS price and the others have no MLPerf result here. The cost per token trends post covers why per-token prices fall over time and the caveats in comparing them.

Putting it together: a decision table

No row in this table names a winner. Each names the metric that dominates and the chips that are strong on that metric, with the trade-off.

If your main workload isThe metric that dominatesStrong on that metric (vendor figures)Trade-off to check
Frontier-scale pre-trainingDense BF16 or FP8 at scale, plus scale-up domain sizeGB200 and GB300 NVL72 (72-GPU NVLink domain), TPU v5p and Ironwood pods (thousands of chips on ICI), Trn2 UltraServers (64 chips)Liquid cooling, rack-scale procurement, lock-in to one software stack
Mid-size training and fine-tuningMemory per chip and price per dense TFLOP-hourMI325X and MI355X (256 to 288 GB), B300 (up to 288 GB), Trainium2 and TPU v6e on pricePorting effort off CUDA; small memory on v6e
High-throughput batch inferenceLow-precision dense throughput and bandwidthB200, B300, MI355X (FP4 and 8 TB/s), Ironwood (FP8 and 7.4 TB/s)FP4 quality on your model must be validated
Low-latency interactive inferenceBandwidth per chip and tensor parallel link speed8 TB/s parts with NVLink 5 or Infinity Fabric; NVL72 for very large modelsSmall batches waste compute; cost per token rises
Long-context servingHBM capacity for KV cacheMI325X, MI355X, B300, IronwoodCapacity without bandwidth still limits decode
Large mixture of experts servingAll-to-all bandwidth across the scale-up domainNVL72 racks, Trn2 UltraServers, TPU podsExpert placement and load balancing are software problems
FP64 scientific computing on the same clusterFP64 throughputMI300X and MI325X (163.4 TFLOPS matrix), H100 and H200 (67), B200 (37)B300 and GB300 cut FP64 sharply; TPUs and Trainium do not list FP64
Lowest public hourly pricePrice per chip-hour and per TB/sTPU v5e and v6e, Trainium2Per-chip memory and software fit

Common mistakes

  • Comparing sparse with dense. A sparse NVIDIA figure next to a dense TPU figure exaggerates the gap by 2x. Halve the NVIDIA "with sparsity" number unless your model really is 2:4 sparse.
  • Comparing different precisions. FP4 against FP8 is another hidden 2x (3x on the B300). Compare at the precision you will actually run, and validate model quality at that precision.
  • Comparing a rack figure with a chip figure. GB200 and GB300 NVL72 numbers are for 72 GPUs. Divide before you compare.
  • Treating peak as achieved. Plan with an MFU range, such as the 38 to 43 percent the Llama 3 paper reports, not with 100 percent.
  • Ignoring memory capacity. A chip that needs twice as many units to hold the model pays twice the communication and often a lower MFU.
  • Ignoring the KV cache. At long contexts and large batches the cache can exceed the weights, as the 70B example shows.
  • Mixing GB and GiB. 192 GiB is about 206 GB.
  • Reading MLPerf per-accelerator numbers as official. MLPerf reports per system. Per-chip division is reasonable for like-sized systems, but say you did it.
  • Taking reservation prices for on-demand prices. AWS Capacity Blocks, Google commitments and Azure pay as you go are different products with different prices.
  • Forgetting the software bill. Porting kernels, retuning parallelism and requalifying a model are real costs that no spec sheet shows.
  • Forgetting the software supply chain. Every chip's driver, runtime, compiler, collective library and serving framework is a versioned dependency with its own security advisories.

Where Safeguard fits

Safeguard does not design, program or speed up AI accelerators, and nothing in its product lowers GPU, TPU or Trainium cost or makes a model train or serve faster. The honest connection is the software that runs on all of this hardware. Whichever chip you choose, your training and serving images carry a driver user space, a runtime (CUDA, ROCm, the Intel Gaudi software suite, XLA libraries or the Neuron SDK), math and collective libraries (cuDNN and NCCL, MIOpen and RCCL, and their equivalents), a container toolkit, a framework build such as PyTorch or JAX, and a serving stack. Each is a versioned component, and each gets security advisories on its own schedule. Model files are part of the same chain: loading weights from a format that can execute code on load is a known risk, which is why formats such as safetensors exist.

Safeguard's generally available tooling applies to that software layer: SBOM generation and analysis in SPDX and CycloneDX, scanning of repositories, container images and SBOM files, vulnerability matching enriched with EPSS and CISA KEV data, reachability analysis to rank the findings your code actually calls, and autonomous remediation that opens tested fix pull requests, switched off by default. In practice that means you can scan a CUDA, ROCm or Neuron based image, see which of your images carry a given NCCL, container toolkit or serving framework version, and get a pull request that moves a pinned version forward when a fix exists. AI-BOM discovery, an inventory of AI assets across code and cloud, is in early access. Safeguard does not scan accelerator firmware or host kernel drivers installed outside your images; those updates come from the hardware vendor, your cloud provider and your operating system distribution. For the full list of GPU stack components worth tracking, see the GPU software supply chain post.

FAQ

Which AI chip is the fastest in 2026?

On vendor peak per chip, the AMD MI355X (2.5 PFLOPS dense BF16, 10.1 PFLOPS MXFP4) and NVIDIA's Blackwell parts (2.25 to 2.5 PFLOPS dense BF16, 9 to 15 PFLOPS dense FP4 depending on the system) lead, with Google's Ironwood close behind at 2.3 PFLOPS BF16 and 4.6 PFLOPS FP8. On measured MLPerf Inference v6.0 Llama 2 70B throughput, the GB300, B300, B200 and MI355X systems were at the top. "Fastest" still depends on the workload and the system size.

What is the difference between dense and sparse TFLOPS?

Sparse figures assume 2:4 structured sparsity, where two of every four weights are zero and the hardware skips them, doubling the effective rate. Dense figures assume no such zeros. Most language models run dense, so dense figures are the ones to compare. NVIDIA publishes most Tensor Core figures as sparse; halve them for dense.

How does the B200 compare with the H200?

Per GPU on vendor figures, the B200 in an HGX system has 2.27 times the H200's dense BF16 and FP8 throughput (2,250 against 989.5 TFLOPS BF16), adds FP4, has 180 GB of HBM3E at 8 TB/s against 141 GB at 4.8 TB/s, and doubles NVLink bandwidth to 1.8 TB/s. On MLPerf Llama 2 70B Offline, the top 8-GPU B200 result was 2.94 times the top 8-GPU H200 SXM result per GPU, partly because it used FP4 weights.

How does the AMD MI355X compare with the NVIDIA B200?

On AMD's and NVIDIA's own figures, the MI355X has slightly more dense BF16 and FP8 throughput (2.5 and 5.0 PFLOPS against 2.25 and 4.5), 288 GB of HBM3E against 180 GB, the same 8 TB/s bandwidth, and a higher module power of 1,400 W. In MLPerf Inference v6.0, AMD's 8 x MI355X system reached 99.5 percent of HPE's 8 x B200 system on Llama 2 70B Offline. The main practical difference is the software stack: ROCm against CUDA.

Are Google TPUs faster than NVIDIA GPUs?

Per chip, Ironwood's 4,614 TFLOPS of FP8 and 192 GiB of HBM at about 7.37 TB/s are in the same class as the B200. TPUs differ mainly in system design: thousands of chips connected directly in a torus, programmed through XLA with JAX or PyTorch/XLA, and available only as a Google Cloud service. There are no TPU results in the MLPerf Inference v5.1 or v6.0 closed datacenter files, so there is no like-for-like measured comparison there.

Is AWS Trainium cheaper than NVIDIA GPUs?

On public list prices, yes per chip-hour: an AWS Capacity Block for 16 Trainium2 chips costs $35.7608 per hour, $2.235 per chip, against $5.970 per H100. Per peak dense BF16 PFLOP-hour that is $3.35 against $6.03. Whether it is cheaper per useful token or per training run depends on the MFU you achieve with the Neuron SDK on your model and on the porting work.

Why does memory bandwidth matter so much for LLM inference?

During decode, every weight is read once per generated token while doing only about two FLOPs per weight. That is far below any modern chip's ridge point, so bandwidth, not compute, sets the speed. A 70B model with FP8 weights can generate at most about 48 tokens per second per sequence on one H100's 3.35 TB/s, and about 114 on one B200's 8 TB/s.

What does MFU mean and what is a realistic value?

Model FLOPs utilisation is the share of the chip's peak FLOPS spent on the model's useful arithmetic. Meta's Llama 3 paper reports 38 to 43 percent BF16 MFU on very large H100 clusters. Smaller or less tuned jobs commonly reach less. Use a range when you estimate.

Is Intel Gaudi 3 still worth considering?

On Intel's figures, Gaudi 3 has 1,678 TFLOPS of dense BF16 (more than the H100's 989.5), 128 GB of HBM2e at 3.7 TB/s and 24 integrated 200 GbE ports, so it needs no separate scale-out NICs. Its FP8 rate equals its BF16 rate, so it gains less from FP8 than other chips. It does not appear in the MLPerf Inference v5.1 or v6.0 closed datacenter results. Fit depends on price and on support for your model in the Intel Gaudi software suite.

Where do these numbers come from?

Every specification comes from the vendor's own product pages, white papers or documentation, every measured result from MLCommons' MLPerf announcements and results files, and every price from AWS, Azure or Google Cloud public price pages checked on 25 October 2026. Derived figures were computed in Python and are labelled.

Picking a chip settles the hardware, but every accelerator in this post runs a deep stack of vendor and open source software, and that stack is where most security fixes land. The practices below apply to the components you build into your own training and serving images; firmware and host drivers outside those images still come from the vendor.

More in this series

Other posts in our AI chips and costs series:

Fix it without waiting for upstream

Whatever the vulnerability, most of the risk sits in two gaps. The first is the time between a fix being published and that fix actually running in your production builds. The second, and worse, is the time before any fix exists at all, while a maintainer works out a patch and a release schedule. Waiting through both gaps is a habit, not a requirement. Safeguard gives teams three ways to close them.

1. Autonomous remediation: pull requests, not tickets

When a fixed version exists, Safeguard's Griffin models open a tested, policy gated pull request that moves the affected dependency to the safe version. You can run it on one repository or in bulk across every project that carries the vulnerable version. Remediation covers eight categories, including dependencies, licenses, security posture and findings. Reachability analysis ranks the vulnerable code paths your application actually calls first, so the first pull requests you merge are the ones that matter most. Autonomous remediation ships switched off, with every category set to Manual, so your team decides how much runs on its own and what still needs a human approval.

2. Gold Open Source: the safe version in seconds, free

gold.safeguard.sh is free and needs no login. Search any CVE or package to see affected and fixed versions, CVSS, EPSS, CISA KEV status and a recommended safe version, or use the "Am I affected?" checker. The same data is available through a free read API, README status badges and RSS threat feeds. The safeguard-sh/gold-scan-action GitHub Action can fail a build on a known exploited vulnerability, on any known vulnerability, or never, so a version you have just removed cannot quietly come back in next week's merge.

3. Gold Registry: start from components that are already fixed

registry.safeguard.sh provides hardened, drop in replacements for upstream packages and container images. Every Gold artifact is held continuously to zero exploitable critical or high CVEs, zero malware and a completed license check, with SLSA L3 or higher provenance, a Sigstore signature and a public evidence page you can hand to an auditor. An artifact loses its Gold badge if it regresses. Teams can point their own package directory at the registry so hardened equivalents resolve without changing how developers install anything.

When upstream has no fix yet, or will not ship one, Safeguard first works to get the fix accepted upstream. If the issue is severe or upstream will not move, Safeguard builds a fork, fixes the vulnerability there and publishes a hardened Gold build, so you are not stuck on a maintainer's release schedule. You can also request a hardened, compatibility tested build of a specific package. This fork and patch flow is in early access today, so ask which packages it covers before you plan around it.

Your situationWhat to use
A fixed version existsAutonomous remediation opens the upgrade pull request; Gold Open Source confirms the safe version
You need to know today whether you are affectedGold Open Source lookup and "Am I affected?" checker, free and without login
You want vulnerable versions to stop shippingThe Gold scan GitHub Action in CI, plus Safeguard policies and gates
Upstream has no fix yet, or will not ship oneA custom Gold request; fork and patch (early access)
You want to start clean on new projectsPull hardened components and images from Gold Registry

One honest limit: when the vulnerable code lives in a vendor appliance, a hosted service or an operating system runtime you do not build yourself, the fix still has to come from that vendor or distribution. The steps above apply to the open source dependencies and container images you build and ship, which is where most teams carry the largest and least tracked share of their exposure.

See how Safeguard would help

The first demo is a real Safeguard CLI session. You install the CLI, open the interactive terminal and ask it to fix a lodash CVE in a repository; it reads the finding and the advisory, asks before any command that changes something, edits package.json, runs the install and tests with your approval and pushes nothing. The same flow applies to the Python and container dependencies of a training or serving repository, whichever accelerator it targets, and safeguard scan --image takes a CUDA, ROCm or Neuron based image.

Click through it at your own pace, or open it full screen.

The second demo sets up the Safeguard runner on your own machine, approves it with a device code and then scans from the terminal. Teams that build accelerator images on their own build hosts, close to the hardware, can run the scans there rather than shipping images elsewhere.

Click through it at your own pace, or open it full screen.

The third demo connects Claude to the Safeguard MCP server with OAuth and shows how you choose which Safeguard tools Claude can use. Once connected, you can ask in plain language which of your projects or images carry a given NCCL, RCCL, container toolkit or serving framework version.

Click through it at your own pace, or open it full screen.

To try it on your own images, download the Safeguard CLI and follow the CLI documentation. For background on accelerators in general, see AI chip architecture, what an AI accelerator is and how it works, GPU memory and interconnects and NVIDIA, AMD, Intel and Apple GPU architectures compared.

Quick check

NVIDIA lists the H100 SXM at 3,958 TFLOPS of FP8 "with sparsity". What dense FP8 figure should you compare with a TPU's FP8 figure?

1,979 TFLOPS. NVIDIA's sparse figures assume 2:4 structured sparsity and are twice the dense rate. Google publishes TPU figures without sparsity, so halve the NVIDIA number before comparing.

A 70B model with FP8 weights runs at batch size 1 on one B200 with 8 TB/s of HBM bandwidth. What is the upper bound on tokens per second, and why?

About 114 tokens per second (8 TB/s divided by 70 GB). Each generated token reads every weight once while doing only about two FLOPs per weight, so decode is memory bound and bandwidth sets the ceiling.

The GB200 NVL72 lists 720 PFLOPS of dense FP4. What is that per GPU, and how does it compare with an HGX B200 GPU?

10 PFLOPS per GPU (720 divided by 72), slightly above the 9 PFLOPS dense FP4 per GPU from the HGX B200 table. The same Blackwell silicon is rated differently in different systems because of power and clock limits.

In MLPerf Inference v6.0, why is comparing the B200's Llama 2 70B result with an H200 result not purely a hardware comparison?

The B200 submissions used FP4 weights and the H200 submissions FP8, because Hopper has no FP4 path. Part of the roughly 3x per-GPU gap comes from the number format, part from the hardware.

Sources

Last reviewed: 25 October 2026. Vendor specifications change between product revisions, some figures here are marked preliminary by their vendors, and cloud prices change often; check the linked pages before you size or price a system on them.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.