TPU

Ajalugu

Toote ideed oli Google'il juba 2006. aastal, kui arendati välja ASIC, kuid olukord muutus keerulisemaks 2013. aastal, kui inimesed mõistsid, et tänapäeva kiires arvuti ning tehnoloogia arengus jääb ühest andmekeskuste arvust väheks. Sellepärast disainisid, ehitasid ja võtsid kasutusele 2016. aastal TPU. Protsess võttis aega 15 kuud, mille sisse jäi ka 2016. aasta mai, kui tehti avalikkusele üldine tutvustus Google'i I/O-konverentsil USA California osariigis. Hiljem selle toote väljaarendaja Norm Jouppi laskis välja esimese generatsiooni TPU. Kuigi see protsessor oli revolutsiooniline, siis praeguste generatsiooni kiipidega võrreldes olid need kiibid kasutatavad ainult järelkoormustele (inference workloads). Praegused TPU kiibid on võimelised adresseerima nii masinõppesüsteemi kui ka järelkoormusele ning parim platvorm, kus programmeerida TPUsid, on samuti Google'i välja töötatud TensorFlow' tarkvara, mis on nüüdseks kõige tihedamini kasutatud tarkvarateek mudelite arendamiseks ning mis kasutab oma tarkvaras tensoranalüüsi arvutusi.

Ülevaade

TPU on Google'i esimene tellimuse põhjal valmistatud ASCI kiip masinõppeks, mis toimib kõige efektiivsemalt tarkvarateegil TensorFlow. Nii Google Search, Street View (kasutades palju TPU-sid korraga, leitakse kogu tekstiline info 5 päevaga, mis mõnel juhul võib võtta kuid, kui mitte aastaid), Google Photos (iga TPU jõuab läbi töötada rohkem kui 100 miljonit fotot päevas), Google Assistant, AlphaGo, Google Translate jpm kasutavad tensori keskseadet, et muuta närvivõrgu arvutusi palju kiiremaks ning tõhusamaks, kiirendades nende tarkvarade arengut. CPU ja GPU-ga võrreldes on TPUl 15–30 võrra suurem jõudlus ning kasutab 30–80% võrra vähem energiat. Tegemist on välise kiibiga, mis mahub SATA kõvakettale, et seda seal paigaldada. TPU on ühendatud PCIe Gen3 x16 liinile, mis võimaldab 12,5 GB/s ribalaiust. Tänu nendele eelistele on Google'il võimalus anda kiiremaid ning odavaimaid teenuseid, kui teised konkurendid, samuti vähendab see sõltuvust ning sellega tulenevaid kulutusi teiste kiipide tootjatest nagu Nvidia ja Intel ning Dell HP ja Cisco, sest nii nagu neil on TPUl disainitud oma serverid, võrgu riistvarad. Tänapäeva generatsiooni tarkvaraarendajaid kaasaarvatud Google Assistant, kasutavad närvivõrke, mis on keerulised algoritmid, mis suudavad õppida iseseisvalt tööülesandeid analüüsides väga suurel hulgal informatsiooni, kuid see nõuab väga suurt võimsust. Kuna Google'i haare on juba nii suur, otsustati, et tehakse ise selline süsteem, kus ei pea eelmainituid firmadega arvestama. See ei tähenda, et Google ei osta Nvidialt ning teistelt tegijatelt kiipe, kuid on väiksem sõltuvus. 
TPU on kohandatud töötama masinõppe rakendustel, mis erineb väga suuresti nii CPU kui ka GPUga. Kui Google kasutab masinõppe aplikatsioone, siis üks eelis teistest konkurentidest on ka see, et see on võimeline koos töötama ka CPU ja GPUga tehes selle väga mitmekülgseks. Samuti võrreldes CPUga kasutab TPU vähem arvutusbitte. Kasutatakse bitte ainult siis kui neid on vaja, miskit ei hoita niisama töös. Tänu sellele on võimalik teha rohkem operatsioone sekundi jooksul, kasutades sama palju silikooni kui CPUl. Praegu on Google'il käsil arendada arvutid nii, et nad tuvastaksid objekte näiteks juhita autodel tuvastamaks tänavamärke. Tänu TPUle on arvutisüsteemide jooksutamine palju kiirem, vähendades seda mõne tunnile.  
Google saab tänu TPUle viimistleda ja parandada nii enda tooteid kui pakkuda masinõppe klientidele lisajõudu oma teenuste täitmiseks ning võib üsna pea olla suurim konkurent, sest kõik teised sarnased firmad pakuvad ainult GPU- ja FPGA-põhiseid masinõppe teenuseid.

TensorFlow

See on Google'i loodud avatud lähtekoodiga masinõppe tarkvarateek, mis kasutab arvutuste tegemiseks andmevoo graafe. Selle peamine eesmärk on seotud masinõppe ja tehisnärvivõrkude uurimine, kuid on ka piisavalt üldine, et seda saaks rakendada ka muudes valdkondades. Esialgu oli see mõeldud ettevõttesiseseks kasutuseks, et see oleks abiks teadustööde kirjutamisel ja uute tehnoloogiate väljatöötamisel. Selle lähtekood tehti avalikkusele kättesaadavaks 2015. aasta 9. novembril.

Esimene generatsioon TPU

Esimese põlvkonna TPU on 8-bitine maatriksi korrutusmootor, mida juhib PCIe 3.0 siini kaudu CISC juhised. See on toodetud 28 nm kiibil, mille diameeter on ≤ 331 mm². Kiirus on sellel 700 MHz ja selle soojusvõimsus on 28–40 W. Sellel on 28 MiB mälu ja 4 MiB 32-bitist akut, kasutades 256x256 süstoolse massiivi 8-bitiste kordajate tulemusi. TPU paketis on 8 GiB kahekanalilist 2133 MHz DDR3 SDRAM-i, mis pakub 34 GB/s ribalaiust. Juhised edastavad või võtavad vastu keskseadmesse maatriksi korrutusi või konvoluute ja rakendavad aktiveerimisfunktsioonid.

Teise generatsiooni TPU

Teise põlvkonna TPU esitleti2017. aasta mais. Google väitis, et esimese põlvkonna TPU disain oli piiratud mälu ribalaiusest, seega selle tõttu ei saadud jõudlust suurendada. Seega suurendati teise generatsiooni disainis 34 GB suurust ribalaiusest 600GB / s ja jõudlus kuni 45 TFLOPS-ni. Samuti paigutatakse TPU-d neljakiibilistesse moodulitesse, mille jõudlus on 180 TFLOPS. Seejärel on 64 neist moodulitest kokku pandud 256 kiibi podlitesse, millel on 11,5 PFLOPS-i jõudlust. Kuigi esimese põlvkonna TPUd olid piiratud täisarvudega, võivad teise põlvkonna TPU-d arvutada ka komadega arve. See teeb teise põlvkonna TPU-d kasulikuks nii masinaõppemudelite koolitamiseks kui ka järelduste tegemiseks. Google on teatanud, et need teise põlvkonna TPU-d on saadaval Google Compute Engine'is kasutamiseks TensorFlow' rakendustes.

Kolmanda generatsiooni TPU

Kolmanda põlvkonna TPU kuulutati välja 8. mail 2018. Google teatas, et protsessorid ise on kaks korda võimsamad kui teise põlvkonna TPU-d ja neid kasutataks poodidena neljakordselt rohkemate kiipidega kui eelmise põlvkonna puhul. Selle tulemuseks on 8-kordne jõudluse suurenemine poodi kohta (kuni 1024 kiipi kohta poodi kohta) võrreldes teise põlvkonna TPUga

Edge TPU

Edge TPU esitleti 2018. aasta juulis. Edge TPU on Google'i ehitatud ASIC-kiip, mis on disainitud masinaõppe mudelite jooksutamiseks. See kasutab tarkvara Cloud IoT Edge, mis ühendab lüüsi funktsioonid, kasutades Edge IoT Core'i tarkvara koos Edge ML-ga, masinaõppega, mis põhineb TensorFlow Lite'il.