Googles TPU maakt hun kunstmatige intelligentie diensten sneller en betaalbaarder

Zoals eerder besproken is voor video intelligentie activiteiten flink wat computerkracht nodig. Met name voor geavanceerde vormen, zoals deep learning, is het over het algemeen waarschijnlijk voor veel bedrijven interessant om dit soort computeractiviteiten in de cloud te laten gebeuren. In dat geval heb je toegang tot de waardevolle kennis en ervaring van experts en tot middelen die door hen zijn ontwikkeld. Googles nieuwe processor is een goed voorbeeld van een reden om kunstmatige intelligentie berekeningen bij hen in de cloud te laten uitvoeren.

Tensor Processing Unit

Google was op zoek naar een snellere, slimmere en betaalbaardere manier om berekeningen in neurale netwerken uit te voeren. Daarom hebben zij een nieuw soort processor ontwikkeld die hiervoor is geoptimaliseerd; de Tensor Processing Unit (TPU). Het ontwerp van de TPU verschilt in een aantal opzichten van de ontwerpen van de CPU en de GPU, waardoor deze veel geschikter is voor neurale netwerken.

Quantitization

Het proces van het classificeren van data met labels of het schatten van ontbrekende of toekomstige waarden door een getraind neuraal netwerk heet inference. Er komt een gigantische hoeveelheid berekeningen aan te pas bij dit soort processen. Een TPU voert deze berekeningen niet uit met gebruikelijke 32-bit of 16-bit komma getallen zoals CPU’s en GPU’s. In plaats daarvan kan de TPU door de techniek ‘quantitization’ met gehele getallen werken. Het werken met gehele getallen zorgt ervoor dat er wat ingeleverd wordt op nauwkeurigheid, maar die nauwkeurigheid is vaak helemaal niet nodig bij dit soort processen. (Als je bijvoorbeeld wilt weten of het regent, dan wil je misschien weten of het hard, zacht of niet regent, maar maakt de precieze hoeveelheid regendruppels per tijdseenheid niet uit). Hierdoor kunnen de totale hoeveelheid geheugen, computing middelen, energieconsumptie en kosten voor het maken van bruikbare voorspellingen met de neurale netwerk modellen flink verminderd worden.

Programmeerbaarheid

De TPU bevat de essentie van neurale netwerk berekeningen, en kan geprogrammeerd worden voor een grote variatie aan neurale netwerk modellen. De meeste moderne CPU’s zijn erg beïnvloed door de Reduced Instruction Set Computer (RISC) ontwerp stijl, waarbij de focus ligt op het definiëren van simpele instructies die algemeen gebruikt worden door het merendeel van de applicaties, en het zo snel mogelijk uitvoeren van die instructies. In tegenstelling is er bij de TPU gekozen voor de Complex Instruction Set Computer (CISC) stijl als basis voor de instructie set. Een CISC ontwerp focust op het implementeren van high-level instructies die complexere taken uitvoeren bij elke instructie. De ontwerpers hebben een dozijn high-level instructies gedefinieerd. Deze instructieset focust op de voornaamste wiskundige bewerkingen die nodig zijn voor neurale netwerk inference.

Parallelle verwerking

Hoewel CPU’s bepaalde berekeningen gigantisch snel kunnen uitvoeren, kan het nog steeds lang duren om grote matrix operaties die nodig zijn voor neurale netwerk berekeningen uit te voeren. Een bekende en effectieve manier om de performance van die grote matrix operaties te verbeteren is door vector processing, waarbij dezelfde berekening gelijktijdig wordt uitgevoerd door een grote hoeveelheid elementen. Dit kan gerealiseerd worden door CPU’s met extensies, en de streaming multiprocessors van GPU’s. Machines die vector processing ondersteunen kunnen honderden tot duizenden operaties in een enkele cyclus verwerken. Echter, Google heeft voor de TPU een matrix processor ontworpen die honderden duizenden operaties in een enkele cyclus verwerkt. Met andere woorden, deze matrix processor verhoogt de performance enorm.

Andere architectuur

Om zo’n grootschalige matrix processor te implementeren, heeft de TPU een drastisch andere architectuur dan typische CPU’s en GPU’s. CPU’s worden gemaakt om vrijwel iedere berekening uit te kunnen voeren. Ze zijn voor algemeen gebruik. Alle kenmerken die algemeenheid ondersteunen (registers, ALU’s en programmed control) hebben kosten in termen van vermogen en chip ruimte. Het type ontwerp in de matrix processor van de TPU is geoptimaliseerd voor efficiëntie op het gebied van vermogen en ruimte bij het uitvoeren van matrix vermenigvuldigingen, en is niet zo geschikt voor algemene berekeningen. Registers, controle en operationele flexibiliteit worden gedeeltelijk opgeofferd voor efficiëntie en veel hogere werkingsdichtheid. Het op CISC gebaseerde matrix processor ontwerp levert een zeer goede performance t.o.v. het energieverbruik. Een TPU scoort 83 keer beter in vergelijking met de CPU’s van tegenwoordig, en 29 keer beter in vergelijking met de huidige GPU’s.

Minimalistisch ontwerp

Omdat processors als CPU’s en GPU’s goed moeten presteren over een breed scala aan applicaties, hebben ze vele geavanceerde, prestatie-georiënteerde mechanismen ontwikkeld. Een neveneffect hiervan is dat het gedrag van die processors moeilijk te voorspellen is, waardoor een bepaald limiet op de latency van neurale netwerk inference moeilijk te garanderen is. Daarentegen is het TPU ontwerp minimalistisch omdat het slechts een taak per keer hoeft te doen, namelijk neurale netwerk voorspelling. Daardoor kan er gemakkelijk geschat worden hoeveel tijd er nodig is om een neuraal netwerk te draaien en een voorspelling te doen. Hierdoor kan de chip doorvoer heel hoog zijn terwijl er een strikt latency limiet op vrijwel alle voorspellingen behouden kan worden.

Ondanks dat een TPU meer rekenkundige eenheden en een groot geheugen op de chip heeft, is de chip twee keer zo klein als de andere chips. Hierdoor beslaan ze minder ruimte en hebben ze minder vaak fabrieksfouten, waardoor de chip kosten ongeveer acht keer verminderen.

Kortom, de TPU is uitermate geschikt voor neurale netwerken, omdat deze er speciaal voor is ontworpen. Door deze processor wordt kunstmatige intelligentie sneller en betaalbaarder en komt het steeds meer binnen handbereik.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google photo

Je reageert onder je Google account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s