In-Datacenter Performance Analysis of a Tensor Processing Unit
In-Datacenter Performance Analysis of a Tensor Processing Unit
Metadata
- Slug:
tpu_datacenter_2017 - Year: 2017
- Venue: ISCA
- Authors: Norman P. Jouppi et al.
- Reading status: read complete
- Compute regime: TPU and accelerator Transformer era
- Primary sources: PDF, extracted text
Compute Setup
The paper explicitly describes Google's first-generation Tensor Processing Unit as an inference ASIC deployed in datacenters since 2015. The heart of the chip is a 256 x 256 matrix multiply unit, or 65,536 8-bit MACs, with 92 TeraOps/second peak throughput. It has 28 MiB of software-managed on-chip memory, including a 24 MiB Unified Buffer and 4 MiB of accumulators, plus 8 GiB of off-chip DRAM weight memory. The TPU runs at 700 MHz in the benchmark table and is attached as a PCIe Gen3 x16 coprocessor in existing servers.
The comparison devices are contemporary datacenter systems: an Intel Haswell E5-2699 v3 CPU server and NVIDIA K80 GPUs. Table 2 lists Haswell with 18 cores per die, K80 with 13 SMX processors per die, and TPU servers with 4 TPUs. The paper emphasizes that the K80 GPU was common in 2015 neural-network work, while the TPU was designed for production inference rather than training. Training remains mostly floating point and GPU-oriented; the TPU target is quantized inference.
Bottleneck
The bottleneck is datacenter inference under latency and power constraints. The paper argues that user-facing services value 99th-percentile response time more than average throughput. This hurts GPUs: batching improves throughput, but waiting for large batches violates latency limits, and K80-style throughput features do not necessarily improve the tail. The MLP0 example uses a 7 ms 99th-percentile response target.
Memory bandwidth is another limiter. Four of the six neural-network applications are memory-bandwidth limited on the TPU. The paper's roofline analysis shows that even with many MACs, applications can sit under the slanted bandwidth-bound part of the roofline. Host interaction also remains part of the system: the TPU is a PCIe coprocessor, and some applications still spend time in the host application or communicating across PCIe.
Method Adaptation
The TPU adapts the device to inference economics by spending silicon on dense 8-bit matrix arithmetic and software-managed buffers rather than general-purpose CPU/GPU features. Quantization transforms floating-point weights and activations into narrow integers, usually 8-bit for inference. The paper notes that 8-bit integer multipliers are far smaller and lower-energy than floating-point datapaths, which lets the TPU pack many more MACs into a small die.
The 256 x 256 matrix unit uses systolic execution to reduce reads and writes of the Unified Buffer. Weights are staged through an on-chip Weight FIFO from 8 GiB weight memory, activations live in the Unified Buffer, and the matrix unit is designed for dense matrices. Sparse architectural support was omitted because of the short deployment schedule. The host sends TPU instructions over PCIe; the user-space driver compiles TensorFlow portions of applications, reformats data, caches the program image, and writes weights into TPU memory. The paper says the TPU runs most models completely from input to output to maximize compute time relative to I/O time.
The execution model is intentionally deterministic and minimal: no caches, branch prediction, out-of-order execution, multiprocessing, speculative prefetching, multithreading, or context switching in the accelerator. That makes the chip better matched to 99th-percentile latency than throughput-oriented hardware.
Evidence
The paper reports the TPU is on average about 15x-30x faster than contemporary GPU or CPU baselines, with 30x-80x higher TOPS/Watt. Including host overhead, the weighted-mean performance in Table 6 is 29.2x Haswell for TPU and 1.9x Haswell for K80, making the TPU die 15.3x as fast as the GPU die on the actual workload mix.
The MLP0 latency table shows the batching advantage under a strict tail-latency target. CPU batch 16 takes 7.2 ms at 5,482 inferences/sec, already slightly over the 7 ms target; GPU batch 16 takes 6.7 ms at 13,461 inferences/sec; TPU batch 200 takes 7.0 ms at 225,000 inferences/sec and still meets the target. Relaxing latency lets CPU/GPU use larger batches, but those results are not useful for the user-facing requirement.
Power and TCO evidence are equally central. The TPU server has 17x-34x better total-performance/Watt than Haswell and 14x-16x the performance/Watt of the K80 server. On the incremental metric, excluding the host CPU server, the TPU is 41x-83x Haswell and 25x-29x K80. The paper also reports poor energy proportionality: at 10% load, the TPU still uses 88% of its full-load power, a limit attributed to the short design schedule.
Historical Effect
This paper anchors the datacenter inference-accelerator branch of AI compute history. GPUs made training practical, but production inference created a different target: low tail latency, high operations per watt, quantized arithmetic, software-managed memory, and dense matrix execution inside existing datacenter servers. The TPU's success came from matching the actual workload mix, not from maximizing a generic FLOP metric.
Limits
The first-generation TPU is inference-only and optimized for quantized dense workloads. It lacks sparse architectural support, has relatively limited memory bandwidth, and remains a PCIe coprocessor with host overhead. Four of six workloads are memory-bound. Energy proportionality is weak at low load. The paper compares against contemporary Haswell and K80 systems available around the 2015 deployment window, not later GPU generations.
Links
- Parent regime: compute spine
- Related card: Attention Is All You Need 2017
- Method index: accelerator_benchmarking
- Ledger updates: compute bottlenecks