Google má nový procesor TPU pro strojové učení. Výkonem 180 TFLOPS překonává Voltu

18
Google Cloud TPU

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.

google-cloud-tpu1Jelikož 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.

Google má nový procesor TPU pro strojové učení. Výkonem 180 TFLOPS překonává Voltu

Ohodnoťte tento článek!

18 KOMENTÁŘE

  1. zvlastni skladba, na tom poslednim obrazku je 32 kusu odhadem U3/U4 (spise U4) supliku a v kazdem z nich dvojice modulu (modre), takze 64 modulu po 4 kusech dava tech 11,5 PFLOPS?, tak to vychazi na 256 tech cipu? ty racky jsou sakra velke dvojite a jsou potreba 4 kusy? na fotky pekny, ale jinak je to extra plejtvani mistem

    • Měli by to prezentovat na Hot Xhips v srpnu, tak se k tomu asi objeví lepš informace. jestli je ten výkon na desku nebo na čip ten blogpost Googlu nikde moc zpříma neuvádí, tak jsem se přiklonil k té konzervativnější variantě (180 TFLOPS – čtyři čipy).

  2. To je jednoduche – deep learning se na ASICy nepresune. FMA je sice spolecna operace pro vetsinu deep learning uloh, ale porad jsou tam i dalsi operace (napr. na spravocani obrazu). Predpokladam, ze Cloud TPU of Googlu tohle bude muset predpocitavat na CPU. Kombinace primo v ramci vypocetniho GPU mi prijde vyhodnejsi.

          • Backpropagation je jeden ze zpusobu uceni, ne zadny funkcni blok. Jasne, hezky jsi si vygooglil deep learning a pouzil prvni slovo co jsi videl, ale uplne mimo context a bez chapani funkce. Takze opakuju, co to kecas za blbosti?

          • No jestli chcete, tak si to zobecněte, to už je přece jedno, myšlenka je stejná. Pořád můžete mít specializovaný blok již existujícími prostředky úzce integrovaný s jinými. Což je snad to, o čem jste mluvil, ne?

            Hezký den a přeji vám, abyste se do příště lépe vyspal. 🙂 Komentáře o googlení jsou zde zcela mimo.

          • Ne, nemuze. Neco musi data pripravit pro format ASICu a pak ta data prenest. A v tom je lepsi GPU nez CPU+RAM+ASIC, protoze je vse primo na cipu. Google to nedela proto, ze by to bylo lepsi reseni. Dela to proto, ze je to pro ne i s horsimi vlastnostmi pored dostatecne dobre a zaroven levnejsi, nez nakupovat od Nvidie a AMD.

    • Volta je taky krok směrem k ASICu (ty tensor cores). já bych se vůběc nedivil, kdyby jeden z těch ASICů, co GPU v machine learningu eventuálně zahrabou, udělali právě oni, teda Nvidia. Trošku jsem se na téma bavil s nějakejma programátorama a taky si mysleli, že v tom oboru převládnou ASICy. Z mý strany je to ale jenom nezávaznej odhad, tak podle toho neinvestujte na burze 🙂

      Edit: teda takhle – ty ASICy nejspíš GPU převálcujou v těch aplikacích (inference), kvůli poměru spotřeby a výkonu. Na učení by se mělo používat celkově menší množství hardwaru než potom na inferenci, a tak je tam asi talk na efektivitu menší. Takže tam by se asi GPU nebo třeba i procesory asi mohly dál používat, pokud budou proti ASICům (a FPGA) nabízet nějaké výhody.

      • jistě že je to v podstatě integrovaný ASIC. Vzhledem k velikosti GV100 se ale nabízí otázka, zda není lepším řešením přídavný akcelerátor ASIC jako přídavná karta/čip než dělat takovéto obludné a nákladné monstrum čipy.
        Jistě, Nvidii prvenství za zvládnutí výroby takové čipu už nikdo neodepře ani schopnosti jejich engineeringu. Osobně mi ale přijde lepší řešení například HPC čip o velikosti jako je např. Vega 10 + přidavný ASIC čip na interposeru s TENSOR jádry. Výhody jsou evidetní. Levnější a snadnější výroba, menší zmetkovitost (waffer yields) a potenciálně i rychlejší uvedení na trh. Vubec by mě nepřekvapilo, kdyby AMD nebo jiní výrobci zvolili tento postup.

        • no jak vidno, tak prozatim to v podani Googlu je obri masina ktera v pomeru prostor/vykon asi bude dost zaostavat, to co nabizi Nvidia v podobe V100 jako GDX system, by zabralo pri stejnem teoretickem vykonu 1 a pul tech racku co vidime na obrazku, v pripade Google to zabira realne 3 a pul tech racku, otazkou bude jaky vykon bude v realu pri danych vypoctech

        • Tady je to samej expert, ale bez zakladnich znalosti.

          Stejne jako je GPU o spravnem pomeru SPs, texturovacich jednotek, geometrickych jednotek atd., je compute GPU pro deep learning o pomeru tensor cores a univerzalnich jader (CUDA cores). Oboji je potreba.

        • Sú niekde informácie o výťažnosti GV100?

          A s rýchlejším uvedením na trh… tak ono to je asi vidieť ako rýchlo bola uvedená P100 a V100 a koľko to trvá Vege. Alebo na tom, že Intel 28nm ASICy ešte len plánuje a 16nm sú v pláne na 2019-2020.

      • Takze jsi vlastne rekl co ja predtim:
        „Predpokladam, ze Cloud TPU of Googlu tohle bude muset predpocitavat na CPU.“
        „nevidim duvod, proc bych na specializovany HW neposilal rovnou prekodovana data CPUckem“

        Jasne, ze tam bude overhead. GPU maji shader units, coz jsou vlastne maticove akceleratory. Jsou mnohem rychlejsi pri praci s obrazem, simulacemi atd., coz je ve strojovem uceni hojne vyuzivano, a hlavne vse je uz v pameti GPU a nemusi to cestovat z hlavni pameti.