Pieter Edelman
6 April 2017

In aanloop van een conferentie in juni heeft Google details naar buiten gebracht over de Tensor Processing Unit (tpu), zijn asic voor diepe neurale netwerken. De zoekmachinegigant gebruikt de versneller sinds 2015 in zijn datacentra voor het toepassen van getrainde netwerken; voor de training worden gewoon gpu’s ingezet. De tpu’s zijn echter vele malen efficiënter in de toepassingsfase.

Volgens Google is dat deels te verklaren doordat gpu’s en cpu’s gericht zijn op doorvoer, terwijl bij het toepassen de responstijd veel belangrijker is. Het gaat hierbij onder meer om Googles vertaaldiensten en spraakherkenning.

Het bedrijf bouwde daarom een asic volledig geoptimaliseerd voor zijn taak: een kwart van de die bestaat uit hardware voor matrixvermenigvuldigingen en bijna een derde uit geheugen. Er wordt met 8 of 16 bit integers gewerkt, wat afdoende is in de toepasfase van deep learning. De hardware kan met een simpele instructiepijplijn uit de voeten waardoor hij volledig deterministisch werkt en geen transistoren hoeft te verspillen aan complexe optimalisaties.

De chip wordt op een bordje met ramgeheugen geplaatst en via een pcie-interface in de servers geprikt. Google ontwikkelde een compiler die netwerkbeschrijvingen in zijn Python-gebaseerde Tensorflow-raamwerk kan omzetten naar tpu-code. Om het geheel simpel te houden, wordt er geen software op geladen maar ontvangt hij zijn instructiestroom direct van de cpu.

Volgens Google blijkt uit praktijktesten op zes verschillende toepassingen dat de tpu vijftien tot dertig keer zo snel is als een hedendaagse cpu of gpu in het toepassen van diepe neurale netwerken. Per verstookte watt is hij dertig tot tachtig keer efficiënter. Google heeft ook al ideeën voor verdere verbetering: door de geheugenarchitectuur aan te passen, moet de efficiëntie naar een factor tweehonderd opgeschroefd kunnen worden.