Strojové učení momentálně ve světě počítačů přitahuje enormní pozornost, očekává se strmý růst této technologie. A s ní by se měl dočkat velké expanze také hardware, na kterém tyto úlohy běží. Nvidia na něm v poslední době zdá se založila většinu své strategie výpočetních GPU, ale grafické procesory nejsou jediná možnost, jak úlohy strojového učení provozovat. Google v této obalsti vsadil na mnohem specializovanější procesor TPU (Tensor Processing Unit), který představuje „ASIC“ vyrobený zcela na míru této operaci. Nedávno se ohledně TPU dokonce dostal do mediální přestřelky (o tom, čí řešení je lepší) právě s Nvidií. Po té, co tato firma odhalila novou generaci GPU zaměřených právě na tento trh, uvedl ale i Google novou verzi TPU – která je pružnější, schopnější a také výkonnější, než první. A v hrubém výkonu má být lepší i než Volta Nvidie.
Původní TPU bylo poměrně jednoduché a podle Googlu měl návrh i přes slušný výkon značné rezervy. Hned druhá generace nazvaná Cloud TPU, kterou velefirma nyní představila na Google I/O, tak učinila značný pokrok. Původní TPU bylo omezeno jen na výpočty s 8bitovými celočíselnými hodnotami (INT8). Omezená přesnost na řadu věcí stačí, ovšem Cloud TPU nyní již používá výpočty s plovoucí desetinnou čárkou, mělo by asi jít o 16bitovou přesnost FP16. To je důležité zlepšení – Cloud TPU je totiž nyní schopno neuronové sítě i trénovat, zatímco původní TPU bylo použitelné jen pro jejich aplikaci, tzv „inferenci“.V druhé generaci už tak TPU dokáže pokrýt celý proces strojového učení. Jinde vytrénovaný model také teď není třeba před aplikací na TPU konvertovat na celočíselnou aritmetiku.
Bohužel neznáme spotřebu těchto akcelerátorů, což učiní následující výkonnostní srovnání poněkud nefér, nicméně podle Google má Cloud TPU vyšší výkon než Nvidia Tesla V100. A to i pokud tento akcelerátor použije plně své specializované jednotky „Tensor Cores“. Cloud TPU má údajně teoretický výkon 180 TFLOPS, čímž by Voltu porazil o 50 % (při použití maticových operací na Tensor Cores má GV100 dosahovat 120 TFLOPS). Má to nicméně ten háček, že Google asi neuvádí výkon na jeden čip, označení „Cloud TPU“ se zdá se vztahuje na jednotku tvořenou čtyřmi propojenými čipy, na každý by pak připadalo 45 TFLOPS.
Jelikož Volta je 300W čip, je přesto docela možné, že Cloud TPU dokáže stejný výkon vyvinout s lepší energetickou efektivitou, pokud je spotřeba jednoho čipu nižší než 100 W; navíc Cloud TPU zdá se nemá žádné hostitelské CPU, nutné pro výpočetní server na bázi GPU. ASICy obecně bývají efektivnější, než obecné procesory, takže vítězství v poměru práce na watt by nebylo překvapením ani pokud by Cloud TPU používalo nějaký méně pokročilý proces, než jsou 12nm FinFETy čipu Volta. Nicméně v praxi bude samozřejmě důležité, jaký výkon obě řešení dávají v reálném softwaru, nikoliv na papíře.
Google Cloud TPU používá v poměrně hustě integrovaných soustavách racků, čipy by se měly dát snadno agregovat. Firma používá pro tréning sítí „pody“ s 64 jednotkami (podle fotografií to vypadá na čtyři racky s 16 deskami), které mají celkový výkon 11,5 PFLOPS. Každé TPU by mělo mít k dispozici 64GB paměť s „ultravysokou“ propustností, což by zřejmě mělo značně zlepšit výkon, jelikož původní TPU bylo limitováno pomalou DDR3.
Na rozdíl od Nvidie Google nebude své čipy prodávat a vyrábí je jen pro svou vlastní potřebu. Nicméně to neznamená, že budou používána jen interně. Externím uživatelům budou zpřístupněna jako komerční služba v Google Cloud Platform. Zákazníci používající cloud Googlu tak budou mít možnost vybrat si z čipů GPU (včetně Volty), procesorů i právě Cloud TPU. Pro organizace či firmy, které chtějí používat jen vlastní servery, ale Cloud TPU nebude a budou muset čekat na alternativy. Tou by mohl být třeba akcelerátor Lake Crest od Intelu (původně navržený firmou Nervana). Koncepčně by zřejmě měl být podobný.
Přesune se strojové učení z GPU na specializované čipy?
Operace používané jako základ softwaru pro strojové učení jsou pro akceleraci na podobných specializovaných obvodech docela vhodné, přičemž vyrobit pro ně podobný ASIC čip jako je TPU není údajně příliš komplexní úkol (což také znamená, že by zde měl být značný prostor pro zlepšení výkonu a energetické efektivity v budoucnosti). Těchto akcelerátorů se dost možná tedy vyrojí větší množství a v oboru by asi mohla nastat i docela silná konkurence.
Strojové učení běžící na softwaru typu TensorFlow by možná mohlo projít podobným procesem, jako těžení kryptoměny Bitcoin. Také tam nejprve GPU odstavila běžné procesory, ale nakonec kvůli komplexitě prohrála nejprve s řešeními na bázi FPGA a definitivně s ASICy specializovanými zvlášť na tuto jednu úlohu. Ty díky tomu dokázaly protlačit nejvíce operací na jednotku spotřeby. U podobně paralelních úloh je právě toto limitujícím faktorem, a tudíž by nejefektivnější řešení mělo vyškálováním vyhrát i v absolutním výkonu.