Google claimt dat tpu v4-pods exaflops aan rekenkracht bieden

Google neemt dit jaar generatie vier van zijn Tensor-processingunits in gebruik. De chips voor kunstmatige intelligentie zouden dubbel zo snel zijn als de v3-generatie en een pod met 4096 tpu's zou exaflopsrekenkracht leveren.

Google-topman Sundar Pichai kondigde de tpu v4-generatie tijdens Google I/O 2021 aan. Hij meldde dat Google op korte termijn 'dozijnen' pods met tpu v4's in zijn rekencentra in gebruik neemt. 'Pods' is de naam die Google gebruikt voor racks met tpu-pcb's. Elk van die pods met chips van de vierde generatie biedt volgens Pichai zo'n exaflops aan rekenkracht, oftewel duizend petaflops.

Googles huidige pods met tpu v3-chips bieden ter vergelijking meer dan honderd petaflops aan rekenkracht. Het bedrijf gebruikt naar eigen zeggen 2048 tpu v3-cores in die pods en elke tpu v3-chip heeft twee van die cores, waarmee een v3-pod over 1024 chips beschikt. Volgens Pichai beschikt een v4-pod over 4096 chips. Niet bekend is hoeveel cores de v4-chips bevatten, maar duidelijk is wel dat Google weer vier van die chips op een pcb plaatst. Volgens Google zijn ze 'twee keer zo snel' als de derde generatie, maar het bedrijf heeft verder nog geen details over de chips gepubliceerd.

Google startte in 2015 met zijn zelfontworpen Tensor-processingunits, geoptimaliseerd voor rekenwerk voor kunstmatige intelligentie. Het bedrijf heeft zelf steeds meer rekenkracht nodig voor de steeds complexere modellen voor machinelearning die ten grondslag liggen aan zijn diensten, zoals die voor beeld-, tekst- en audioherkenning. Daarnaast biedt het bedrijf rekenkracht van de pods commercieel aan. Dat moet nog dit jaar ook gebeuren met de tpu v4-pods.

Door Olaf van Miltenburg

Nieuwscoördinator

19-05-2021 • 13:02

25 Linkedin

Reacties (25)

Wijzig sortering
Ik ben verbaasd hoe deze processing units meer rekenkracht lijken te bezitten dan de snelste supercomputers. Ik neem aan dat er beperkingen zijn aan deze rekenkracht die ervoor zorgen dat de petaflops niet met elkaar te vergelijken zijn.
Zover ik hem begrijp: supercomputers bestaan vaak uit 'gewone' CPU's en GPU's en kunnen best wel wat verschillende berekeningen doen. Deze chips (TPU's) zijn zeer specifiek ontwikkeld voor machine learning modellen en zijn daar dus extreen voor geoptimaliseerd.
Dit is inderdaad correct.

Tensor cores in GPU's zijn bedoeld voor mixed precision met FP16 en FP32 matrixen.

GPU's hebben namelijk het probleem dat de cores niet nauwkeurig zijn. Dus ondanks dat ze er veel van hebben kan je er niet vanuit gaan dat de berekening voor bijvoorbeeld een float correct is. Vandaar deze toevoeging in GPU's.

Google's TPU is een ASIC voor low precision FP8 matrixen. Waardoor ze dus veel meer berekeningen kunnen doen voor dezelfde hoeveelheid stroom, maar wel alleen maar die type berekeningen.

CPU's daarin tegen zijn praktisch een alleskunner, die kunnen veel meer verschillende berekeningen doen dan bijvoorbeeld een GPU.

Dat maakt het dus inderdaad onmogelijk om zo'n exaflops statement fatsoenlijk te vergelijken.
GPU's hebben namelijk het probleem dat de cores niet nauwkeurig zijn
Hoezo? GPU's zijn net als CPU's en iedere andere processor even 'nauwkeurig'. Misschien bedoel je dat het 'floating point' formaat niet exact is in het algemeen?

GPU's zijn super goed voor problemen met veel parallellisme, niet zo voor sequentiële taken. In de wetenschappen zijn veel problemen parallelliseerbaar, daarmee hebben supercomputers vaak een aantal GPUs.
Voor Machine Learning hebben sommige GPU's net als de Google TPU speciale rekeneenheden voor low- precision FP8/16 of INT4/8. Dat zijn die 'tensor cores'.

'mixed precision' betekent dat sommige operaties die minder gevoelig zijn in lagere precisie (FP16) uitgevoerd worden, terwijl andere met FP32 draaien.
Dat kan automatisch, dus is makkelijk in gebruik, want 'just works'. Alles in FP16 doen daarentegen vraagt specifieke kennis en aanpassingen aan het algoritme, en je wint niet zoveel snelheid/geheugen tov mixed precision.
Ja dat klopt, momenteel is de trend steeds onnauwkeuriger maar grotere netwerken.

Ooit begonnen netwerken allemaal met met double precision 64bit. Toen werd Tensorflow op consumenten hardware standaard 32bit, en werd dat defacto standaard. Toen kwam half floating point 16bit, en tegenwoordig is floating 8bit of integer 8bit gewoon normaal. Er is zelf een hele tak binnen deeplearning die binary dus 1 bit netwerken inzet.

Het grote voordeel van veel bits is dat je een heel "diep" netwerk kan maken, en je nog steeds voor 1 gewicht in het netwerk kan bepalen aan de uitgang wat de invloed daarvan is. Bij een lage "floating point" precisie verwijnt die invloed in de rekenruis. Omdat op te lossen bestaan netwerken daarom tegen woordig uit meer dwars verbindingen en skip verbinding waar bij lagen of nodes worden overgeslagen Omzo rekenruis te minimalizeren, en nog steeds de invloed van een gewicht diep in het netwerk te kunnen bepalen.
Ook zie je veel strategien, waarbij meerdere netwerken los worden getraind, en daarna pas word gekoppeld, of waarbij het netwerk verschillende kost-functies heeft (sub-doelen), die halverwege het net werk zitten.
Punt is meer denk ik dat super computers vaak worden ontworpen met specifieke doelen.
Grote simulaties, deeltjes fysica, klimaat modellen, aerodynamica quantum mechanische vergelijkingen biologische simulatie, chemische simulaties etc.

Afhankelijk van het soort werk is er bep data transfer nodig, of extreme adressering, opslag, etc.
Dus het een leent zich meer voor dit en het ander meer voor dat.

Een neuraal netwerk kan veel simuleren complexe problemen trachten op te lossen doch het is ook weer niet deeltjes fysica, het staat elkaar niet in de weg soms kunnen ook beide worden ingezet voor bep problemen, of is het een beter dan het ander na nieuwe inzichten.
Sowieso heb je petaflops en petaflops: voor gangbare supercomputers reken je de hoeveelheid 32 bits (of zelfs 64 bits) floating point operaties, waarbij het hier waarschijnlijk om 8 bits operaties gaat.
Ik neem aan dat het woord 'tensor' een uitbreiding is van 'vector'. In de vector technologie gebeurt de berekening in een soort pijplijn. Data komt de pijp van processors in en bij iedere clock tick (of flank) wordt op ieder element in de pijp een bewerking uitgevoerd en het resultaat aan de volgende processor aangeboden. Als je een pijp van 1000 cores hebt, een chip met 2 van die pijpen, en 4096 van die chips in een pod, dan is bij 1 GHz clock je FLOPs 10^9*4096*2*1000 = 8,192 PetaFLOP.
Hmm, ik moet iets over 't hoofd zien, dat ik een factor ruim 100 van een ExaFLOP af blijf.
Een tensor is een veralgemenisering van vectoren en matrices. Waar een vector altijd 1 dimensionaal is en een matrix 2 dimensionaal kan een tensor in feite oneindig veel dimensies hebben.

Hier wel een interessant stukje over TPU V1.

[Reactie gewijzigd door Raafz0r op 19 mei 2021 16:55]

Ja, zoals je een matrix als operator op een vector kunt opvatten, is een tensor een operator op een matrix.

Enig idee waar ik de fout in ga met m'n berekening?
Je aantal 'cores' is te klein. Om te rekenen gebruiken ze een 'systolic array' met 65536 rekeneenheden.
Dit is een goede samenvatting van wat je momenteel aan TPU's hebt als je enig nieuw model in productie wil gebruiken: https://github.com/facebookresearch/detectron2/issues/2220

[Reactie gewijzigd door Osiummaster op 19 mei 2021 13:05]

'Enig nieuw model' of 'enig nieuwe model in Detectron2'? Enig nieuw model in TensorFlow is bijvoorbeeld geen probleem.

[Reactie gewijzigd door The Zep Man op 19 mei 2021 13:22]

Alles wat ik ooit heb gebruikt heb aan custom libraries wordt niet door TPU's gesupport. Nvidia Videokaarten integreren echter altijd perfect met Pytorch en Tensorflow code.

TPU's lijken naar mijn ervaring alleen heel specifiek geoptimaliseerde modellen te supporten, welke meestal ook ouder zijn omdat er voor nieuwe functies vaak geen driver support is.

Al met al vrij waardeloos in mijn ervaring. Een acceleratie product is niet heel nuttig als ik er speciale code voor moet schrijven, dat kost meer aan development tijd dan het me bespaard aan hardware kosten. Zal vast wel handig zijn als je Google bent en je model gigantisch veel deployed, maar voor custom modellen bied het niet echt veel handigs tenzij je houd van gigantisch veel hoofdpijn met drivers.
TPU's lijken naar mijn ervaring alleen heel specifiek geoptimaliseerde modellen te supporten, welke meestal ook ouder zijn omdat er voor nieuwe functies vaak geen driver support is.
Dat is nou eenmaal hoe een ASIC werkt, hardware die sterk geoptimaliseerd is om specifieke taken uit te voeren. Een tradeoff tussen flexibiliteit en performance.
Al met al vrij waardeloos in mijn ervaring. Een acceleratie product is niet heel nuttig als ik er speciale code voor moet schrijven, dat kost meer aan development tijd dan het me bespaard aan hardware kosten.
Afhankelijk van de schaal/complexiteit is het deze trade-off wel of niet waard lijkt me.

[Reactie gewijzigd door Jay-v op 19 mei 2021 13:54]

Het is maar net waarmee je bezig bent. De TPU's zijn bv goed voor beeldherkenning waar je normaal een snelle pc met een gpu en heel veel stroom voor nodig hebt kan je het met een Rpi +TPU voor een fractie van het geld en stroom.
https://www.tensorflow.org/guide/tpu
Hier een voorbeeld.
https://youtu.be/mduuuLIOVQI
Een rpi kan makkelijk 10 ip camera's met beeldherkenning aan. Combineer het met een Jetson Nano en je kan iig 40 camera's met beeldherkenning aan. Weet niet wat de max is. Maar het is een rete goedkope oplossing!
Zijn wel meer organisaties dan alleen Google waar het aantal Wattuur belangrijker is dan programmeur-uur, veiligheidsdiensten die aan massasurveillance doen bijv.
1. Wordt deze technologie ook verkocht, of gebruiken ze het puur voor hun eigen systemen?
2. Kan iemand uitleggen wat er zo specifiek aan AI berekeningen is? Dat het anders is dan een gewone rekensom begrijpt iedereen denk ik, maar wat is er dan precies anders en wat vraagt dit dan van de hardware?
2) heel veel snelle floating point berekeningen met relatief lage precisie. Handig voor neurale netwerken of andere machine learning taken omdat je dan veel floating point berekeningen doet maar de nauwkeurigheid per uitkomst iets minder belangrijk is.

[Reactie gewijzigd door Raafz0r op 19 mei 2021 16:51]

Ja, je hebt Coral.ai. Die verkopen TPU's die je bijvoorbeeld kan gebruiken om icm een SBC beeldherkenning op meerdere streams van IP camera's uit te voeren met een veelvoud van de snelheid van een deftige PC voor een fractie van de prijs. (https://github.com/blakeblackshear/frigate)
Yes! Ik werk hier met mijn Home-Assistant samen met een netwerkstream van 4 IP-camera's (gestuurd door Frigate). Zonder Coral TPU zat ik tegen de 40% welk de processor voor zijn rekening moest nemen voor continue detectie (hond / cat / fiets / auto / persoon). Met deze zit ik eerder rond de 1% want de Coral neemt dit voor zijn rekening. Kostte ook maar iets rond de 20€ en paste gewoon in het mini pCI slotje.
Ik hoop dat de tpu’s met de KPA’s gekoppeld kunnen worden zodat de exaflops ook redundant parallel compatibel zijn met de pods bij een asynchroon FP8-matrix configuratie. Maar dat zal wel
Weet iemand hoe zich dit verhoudt tot de FSD AI chip van Tesla bijvoorbeeld?

Op dit item kan niet meer gereageerd worden.


Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers is samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer onderdeel van DPG Media B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee