# Tensor Processing Unit

De Tensor Processing Unit (TPU) of tensorverwerkingseenheid is een AI-accelerator die door Google is ontwikkeld. Het is een applicatiespecifiek geïntegreerd circuit (ASIC) ontworpen speciaal voor het machinaal leren van kunstmatige neurale netwerken, met name bedoeld voor gebruik van Google's eigen TensorFlow-software. Google begon de TPU's intern te gebruiken in 2015 en stelde ze in 2018 beschikbaar voor gebruik door derden, zowel als onderdeel van zijn cloudinfrastructuur als door een kleinere versie van de chip te koop aan te bieden.

## Overzicht

De tensor processing unit werd in mei 2016 aangekondigd op Google I/O, toen het bedrijf zei dat de TPU al meer dan een jaar in hun datacenters werd gebruikt. De chip is speciaal ontworpen voor Google's TensorFlow-framework, een wiskundebibliotheek die wordt gebruikt voor machine learning-toepassingen zoals neurale netwerken. Echter gebruikte Google ook in 2017 nog steeds traditionele CPU's en GPU's voor andere vormen van machine learning.
De TPU's van Google zijn gemaakt op basis van een gesloten ontwerp. Sommige modellen zijn in de handel verkrijgbaar en op 12 februari 2018 meldde The New York Times dat Google "andere bedrijven zou toestaan toegang tot die chips te kopen via zijn cloud computing-service." Google heeft gezegd dat ze werden gebruikt in de AlphaGo versus Lee Sedol-serie van Go-spellen tussen mens en machine, evenals in het AlphaZero-systeem, dat Chess, Shogi en Go-programma's produceerde die alleen de spelregels leerden kennen en toch veel bestaande en handmatig geprogrammeerde softwarematige spelers kon verslaan. Google heeft ook TPU's gebruikt voor Google Street View-tekstverwerking en kon alle bekende tekst in de Street View-database in minder dan vijf dagen vinden. Voor Google Photos kan een individuele TPU meer dan 100 miljoen foto's per dag verwerken. Het wordt ook gebruikt in RankBrain waarmee Google zoekresultaten levert.
Vergeleken met een grafische verwerkingseenheid (GPU), is een TPU ontworpen om een hoog volume aan lageprecisie-berekeningen te verwerken met meer invoer/uitvoer bewerkingen per verbruikte eenheid energie. Verdere verschillen zijn het ontbreken van hardware voor texture-mapping en rasterisation. De TPU ASIC's zijn gemonteerd in een koellichaam, dat volgens Norman Jouppi in een harde-schijfsleuf in een datacenterrek past. Verschillende soorten processors zijn geschikt voor verschillende soorten machine learning-modellen en TPU's zijn zeer geschikt voor convolutionele neuralen netwerken, terwijl GPU's voordelen hebben voor sommige volledig verbonden neurale netwerken en CPU's op hun beurt weer voordelen kunnen hebben bij Recurrent Neural Networks.

## Producten

| | TPUv1 | TPUv2 | TPUv3 | TPUv4 |
| Introductiedatum | 2016 | 2017 | 2018 | 2021 |
| Fabricageproces | 28 nm | 16 nm | 16 nm | 7 nm |
| Die-grootte (mm2) | 331 | < 625 | < 700 | < 400 |
| On-chip geheugen (MiB) | 28 | 32 | 32 | 144 |
| Kloksnelheid (MHz) | 700 | 700 | 940 | 1050 |
| Geheugen (GB) | 8 GB DDR3 | 16 GB HBM | 32 GB HBM | 8 GB |
| TDP (W) | 75 | 280 | 450 | 175 |
| TOPS (Tera-operaties per seconde) | 23 | 45 | 90 | |

### TPUv1

In mei 2016 kondigde Google zijn eerste generatie Tensor Processing Unit aan. Google zei dat ze al meer dan een jaar TPU's in hun datacenters gebruikten. Hierbij had Google bevonden dat deze systemen een orde van grootte betere prestaties per watt leverden bij machine-learning toepassingen.

### TPUv2

In mei 2017 kondigde Google de tweede generatie TPUs aan, naast de beschikbaarheid van de TPU's in Google Compute Engine. De tweede generatie TPU's leveren tot 180 teraflops aan prestaties, en wanneer georganiseerd in clusters van 64 TPU's, bieden ze gezamenlijk tot 11,5 petaflops.

### TPUv3

In mei 2018 kondigde Google de derde generatie TPU's aan die tot 420 teraflops aan prestaties en 128 GB werkgeheugen met hoge bandbreedte leveren. Cloud TPU v3 Pods bieden 100+ petaflops aan prestaties en 32 TB werkgeheugen.
In februari 2018 maakte Google bekend dat de TPU's in bèta beschikbaar werden op het Google Cloud Platform.

### TPUv4

In mei 2021 kondigde Google de vierde generatie TPU's aan, die in een cloud pod met 4096 TPU's meer dan een exaflops aan rekenkracht zouden kunnen leveren. De individuele chips zouden twee keer zo snel zijn als die van de derde generatie.