Umělá inteligence | Google | Procesory

Až Google dokončí tuto umělou inteligenci, lidstvo ztratí kontrolu nad návrhem čipů

  • Každý procesor se skládá z logických hradel
  • Dnes jich jsou miliony a jejich skládání zabere roky
  • Google buduje technologii, která to dokáže za pár hodin

Celou naši současnou realitu tvoří pulzující nuly a jedničky v integrovaných obvodech. Ve své podstatě naprosto primitivní blikot elektrických signálů na jedné straně spočítá model klíčového proteinu ve farmaceutickém průmyslu, no a na druhé rozsvítí pixely vašeho monitoru, na kterém se zobrazí aktuální meme, které právě teď hýbe internetem.

Nuly a jedničky jsou zázrak a zcela dole na té nejnižší logické úrovni se nachází hradlo – základní člen, který realizuje elementární logickou funkci se samotným elektrickým signálem.

Hradla jsou různé typy kostek Lega

Jedno ze základních hradel AND (konjunktor) má dva vstupy A, B a výstup Q, který bude roven logické jedničce jen v tom případě, pokud ji budou rovny i oba vstupy. V opačném případě hradlo vyplivne logickou nulu.

b8a98c1d-9100-4741-a769-0f7f7f343cd4
Symbol hradla AND a jeho pravdivostní tabulka

Pokud by bylo logickou jedničkou pracovní napětí procesoru – třeba 1,8 V – a toto napětí bychom připojili i na oba vstupy hradla AND, na výstupu Q bude také 1,8 V. No, a když 1,8 V připojíme jen na vstup B a na vstupu A bude napětí 0 V (logická nula), bude nulové napětí i na výstupu Q.

Konjunktor AND doplňují další hradla jako OR, NOT aj., no a jejich vzájemným zapojením popíšeme jakýkoliv digitální problém – i ten sebesložitější. Hradla bychom mohli připodobit k různým tvarům kostek stavebnice Lega.

01c1e4db-0003-48e2-bf10-d2597a7f2ad917efcf86-8fec-4c39-aad4-76a2000819ba
Různé typy hradel lze připodobnit ke stavebním kostkám Lega. Z hradel postavíme jakýkoliv logický obvod, z Lega zase model Neuschwansteinu (Foto: Bagl8CC BY-SA 3.0)

Když budete mít všechny typy a v neomezeném množství, postavíte z nich jak primitivní pravoúhlý panelový dům autora článku, tak pohádkový hrad Neuschwanstein.

NOT + AND = NAND

Jak už tomu ale v životě bývá, v praxi je to všechno trošičku složitější. Naše současné procesory i paměti jsou na logické úrovni složené také z těchto rozhodovacích hradel, často to jsou ale hradla komplexní, protože se v nitru skládají z dalšího členu – hradla NAND.

f8bc6a96-7b23-4933-9332-6116125e61b8
Symbol hradla NAND a jeho pravdivostní tabulka

Hradlo NAND vzniklo složením NOT a AND. Tedy v češtině z invertoru a konjunktoru. Hradlo AND už známe a NOT je prachsprostá negace s jedním vstupem a jedním výstupem. Když tedy bude na vstupu nula, NOT vyplivne jedničku a naopak.

Hradlo NAND má proto přesně opačnou pravdivostní tabulku než AND. Na výstupu Q bude logická nula jen v případě, že budou vstupy A i B rovny jedničce. Ve všech ostatních bude na výstupu logická jednička.

Hradlo NAND je ta nejmenší kostička Lega

No dobrá, ale k čemu je to vlastně dobré? Kouzlo spočívá v tom, že kombinací několika hradel NAND můžeme poskládat jakékoliv elementární logické hradlo. Tedy už zmíněné AND, OR, NOT a tak dále. Říkáme tomu funkční úplnost (functional completeness) a je to samozřejmě velmi praktické i pro výrobu složitého čipu, který se může skládat z mnoha milionů základních hradel identického konstrukčního procesu.

09e3520f-84fa-44bb-9aec-75725c28a284
NAND je ta nejmenší Lego kostka, která umožňuje snadné rozšíření

Pokud jsme původní hradla přirovnávali k různě tvarovaným kostičkám stavebnice Lego, pak si hradlo NAND představte jako tu nejjednodušší kostičku, ze které bychom mohli sestavit jakoukoliv složitější.

Než se posuneme dál, pojďme si to ukázat na příkladu. Dejme tomu, že bychom chtěli pomocí NAND logiky postavit hradlo NOT. Už ho známe, řekli jsme si, že mu říkáme invertor. Potřebujeme k tomu jedno jediné hradlo NAND, přičemž na oba jeho vstupy A, B přivedeme tentýž signál, který chceme otočit.

a6eb4600-41ce-4498-93c2-149120e87f55df59323a-335a-4a57-ab9d-fb1e41e7f5a5
Hradla NOT a AND složená výhradně z hradel NAND

Když to bude logická jednička, na obou vstupech NANDu bude jednička a my už víme, že v tom případě hradlo vyplivne nulu. No, a když to bude nula, vyplivne jedničku. Hurá!

Hradla konečně tvoří tranzistory

No počkat, počkat, každé malé dítě ví, že přece čip ve skutečnosti tvoří tranzistory – jednoduché brány, které pomocí polovodičových jevů zavírají nebo naopak otevírají elektrický obvod.

Ano správně, na fyzikální – konstrukční – úrovni totiž naše hradla NAND tvoří právě tranzistory. Kolik jich přesně bude? To záleží na výrobní technologii. Kdybychom si chtěli jeden NAND postavit z diskrétních elektrických součástek nakoupených v nejbližším obchůdku pro elektrotechniky, budeme potřebovat jen dva tranzistory.

Jejich zapojení do NANDu by pak v případě technologie NMOS vypadalo jako na obrázku níže:

d37fb14a-8294-4e72-b286-801d063fd9bb
NAND sestavený z dvojice tranzistorů (Autor: FresheneeszCC-BY-SA-3.0)

Pomocí vstupů A a B zavíráme jejich tranzistory. Když tedy bude na A i B logická jednička (pracovní napětí obvodu), tranzistory spojí okruh ze zdroje napětí (VCC) do země. Na výstupu Q proto bude velmi nízké napětí – logická nula.

Když ale bude jeden ze vstupních signálů A, B roven nule, jeho tranzistor obvod do země neuzavře, takže na výstupu Q bude pracovní napětí (VCC) a logická jednička.

Počítač i mobil plný NANDů

Hradla NAND ve vašem počítači, notebooku, tabletu nebo mobilu, na kterém právě teď čtete tento článek, ale zpravidla používají odlišnou konstrukci vhodnou pro současný mikroskopický výrobní proces, kdy rozměry počítáme na jen stěží uvěřitelné nanometry.

c6b8a597-adc8-44c0-b4b7-a554b85235c18441f068-eeea-4e5e-a91e-4ef9a4e61595f5d428bc-14f2-4fcf-bc3c-5c69831297fe
Schéma komplexnější konstrukce CMOS NAND se čtyřmi tranzistory NMOS a PMOS, jeho výrobního rozložení a konečně čtveřice NAND na skutečném křemíku pod mikroskopem (Autoři: JustinForce, Jamesm76 a Dgarte, vše CC BY-SA 3.0

Zpravidla je to CMOS NAND. Tyto mikroskopické CMOS NANDy už můžeme v obrovském množství dostat leptáním, nanášením a dalšími chemickými procesy na křemíkový wafer – substrátový disk, ten rozřezat, zapouzdřit a voilà, máme novou a výkonnou GPU, která ty memy na Facebooku vykreslí ještě o další tři pikosekundy rychleji.

Ing. Jaroslav Ořech chce vyrobit nový procesor

Omlouvám se za zdlouhavý úvod do logiky NAND a omlouvám se také konstruktérům čipů mezi našimi čtenáři za nutné zjednodušení látky, které by k důslednému pokrytí nestačil ani rozsah Ottova slovníku naučného, ale bylo to naprosto klíčové pro pochopení kontextu, ze kterého nutně plyne docela nepříjemná otázka:

 

Do psích uší, jak se v tom sakra někdo dokáže vyznat?

 

Představte si konstruktéra nového grafického čipu. Říkejme mu třeba Ing. Jaroslav Ořech. Jarda žije ve svém vlastním uzavřeném světě, příliš nevnímá, co se děje za dveřmi kanceláře, a při jeho naději dožití dokáže v návrhovém softwaru poskládat jednotlivá hradla za sebe, aby plnila funkci výpočetního jádra zcela nové a přelomové GPU, asi tak za pět svých životů.

Začne Jaroslav, bude pokračovat jeho syn, pak vnuk, pravnuk, prapravnuk a snad někdy koncem 22. století bude hotovo.

Intellectual Property Core

Kdyby se ty nejsložitější čipy současnosti navrhovaly výhradně ručně a na kreslícím plátně jako kdysi v 70. letech minulého století, namísto iPhonu a špičkových androidů byste dnes měli v kapse u kalhot zapíchnuté leda tak obří Atari.

cc9055ff-9d43-40ef-8dcc-46367fba511c
Příklad IP jádra SHyLoC Evropské vesmírné agentury pro kompresi obrazových dat na vesmírných sondách s využitím komprese CCSDS123 a CCSDS 121. Všimněte si, že i oba obrazové enkodéry jsou IP bloky, takže je inženýři nemusejí stavět od základů.

V hardwarovém designu se naštěstí používá stejný systém, který znají i softwaroví vývojáři. Zatímco každý populární softwarový programovací jazyk má knihovnu s hotovým kódem prakticky pro jakýkoliv úkol, takže vývojář nemusí znovu vynalézat kolo, svět hardwarového designu má svá IP jádra (Intellectual Property Cores).

Takovým jádrem může být třeba hotový návrh obvodu USB sběrnice, paměti, obvod signálového procesoru DSP, nějakého komplexního akcelerátoru třeba pro kódování a dekódování H.265 a konečně to může být i celý procesor.

Ořech nemusí vynalézat kolo. Už existuje

Jaroslav Ořech proto vezme do ruky telefon, zavolá do nejbližší obchodní pobočky Arm Ltd. a s Jane dojedná nákup IP jader několika procesorů Cortex, grafických jednotek a dalších klíčových obvodů.

Vraťme se k paralele s Legem. Pokud jsou NANDy ty nejmenší kostičky a Ořechův vysněný procesor model celého okolí bavorského městečka Füssen, pak bude IP jádro od Armu hotový a jeho inženýry poskládaný hrad Neuschwanstein. Jarda ho jen vezme, zacvakne do virtuálního waferu a vše propojí dohromady.

A jelikož je Jardova dílna typický fabless, takže nemá vlastní fabriku, až bude návrh konečně hotový, pošle jej e-mailem do jihokorejské TSMC (Taiwan Semiconductor Manufacturing Company) a za pár týdnů mu dorazí několik palet skutečných čipů, které z něj udělají boháče.

Tedy, za pár týdnů to asi nebude, díky přetrvávající krizi v dodavatelském řetězci se totiž Jarda spíše postaví do řady a bude jen tiše vyhlížet světlo na konci tunelu. A také dobrého lodivoda, který to v Suezu nenapálí do nejbližšího písečného břehu.

Bez IP jader by nebyla digitální revoluce

Využívání IP jader je dnes mnohdy jedinou cestou, jak vůbec vyrobit nějaký nový a komplexní integrovaný obvod. Nemusíte hned vyvíjet GPU, ale třeba jen nový a špičkový digitální gyroskop, který hravě překoná všechny ostatní na trhu. Sice budete mít v týmu skvělé experty na MEMS (mikroelektromechanické systémy), nicméně vaše čidlo bude potřebovat i výkonnou výpočetní jednotku, která provede patřičné matematické korekce, kalibraci a další výpočty.

f562a570-c426-4750-8bee-161a205d7149
Prototypovací modul komplexní IMU (akcelerometr+gyroskop+magnetometr) s matematickým koprocesorem, který provádí kalibraci a korekci k co nejlepšímu výsledku

Tuto roli u podobných senzorů zpravidla provádí právě armový mikrokontroler a pro co nejvyšší miniaturizaci je často integrovaný přímo do SoC jako vlastní nebo licencované IP jádro.

Občas musíme vynalézt zcela nové kolo

Občas ale nepomohou ani IP jádra. Zvláště v případech, kdy opravdu potřebujete vyvinout něco nového – nějaké úplně nové kolo.

I s armádou sebeobětavých Ořechů, špičkovým financováním a know-how trvá vývoj zcela nového čipu několik dlouhých let. To, čím se dnes firmy chlubí ve svých nejnovějších modelech, je tedy vlastně minulost.

A to je problém, jedna z oblastí současného digitálního světa totiž potřebuje mnohem svižnější tempo. Řeč je samozřejmě o hardwarových akcelerátorech pro aplikace z ranku umělé inteligence, které se pomalu stávají samozřejmostí.

Vývoj na poli A.I. je rychlejší než vývoj železa

Zádrhel spočívá v tom, že teoretický a softwarový vývoj nových neuronových sítí, které budou ještě svižněji rozpoznávat kočky a psiska, je mnohem rychlejší. Arxiv i GitHub se plní novými studiemi prakticky nepřetržitě, na hardwarové úrovni pak ale všechny tyto neuronové sítě a strojová učení musejí běžet vlastně na poměrně generických GPU jednotkách s univerzálními výpočetními technologiemi CUDA a OpenCL.

Kdysi v počátcích vznikly proto, aby mohly grafické karty počítat nejen věrohodně explodující mozek v nejnovějších FPS, ale i některé méně důležité problémy lidstva jako modely světového klimatu, molekuly nových léčiv nebo třeba právě strojové učení.

Výkonné GPU jsou záchrana, ale nikoliv cíl

Není to ale ani zdaleka ideální. Neuronové sítě a další aplikace z oblasti A.I. potřebují hromadu GPU výkonu, a tak lze mnohdy právem pochybovat o jejich energetické ekonomice. Stručně řečeno, pokud potřebuje neuronová síť k naučení toho, co je to fotka s kočkou ohromné množství kWh či dokonce MWh elektrické energie, zatímco lidskému mozku stačí jedna tatranka, asi je něco špatně.

Vědecká komunita nabízí několik možných způsobů, jak to vyřešit. Tím prvním je návrh zcela nových algoritmů A.I., které budou na současném železe pracovat mnohem efektivněji a v ideálním případě propálí jen zlomek elektřiny, no a tím druhým pravý opak: vývoj nového železa.

Vývoj nového čipu trvá 2-5 let

A to se dostáváme obloukem zase na začátek. Pokud jste právě teď vymysleli nový A.I. algoritmus a chcete pro něj navrhnout čip, který jej bude zpracovávat mnohem efektivněji než současná GPU, bude to trvat 2-5 let. Ještě jednou, dva až pět let. Čili v nejhorším případě stejnou dobu jako jedno funkční období českého prezidenta.

63681141-63a6-45f3-aa3b-8e677c04b39d
Procesory TPU vyvinuté výhradně pro A.I.

Mimochodem, toto není hrubý odhad autora, ale jednoho z těch nejpovolanějších: Googlu, který už procesory pro akceleraci umělé inteligence Tensor Processing Unit vyvíjí celou dekádu a úspěšně je zapojil i do svých datacenter.

Power, Performance, Area

Během těchto 2-5 let musíte s armádou hardwarových inženýrů navrhnout integrovaný obvod, který bude mít co nejlepší poměr PPA (Power, Performance a Area). Když bychom se vrátili zpět k hradlům, která budete muset vyskládat ve formě tranzistorů na wafer, musíte je prostě vyskládat co nejefektivněji.

Fyzická vzdálenost mezi jednotlivými funkčními buňkami (vyššími logickými celky složenými z hradel) musí být co nejkratší, protože v tomto mikrosvěte jde opravdu o každý nanometr. Když dvě buňky, které spolu budou v praxi komunikovat docela často, umístíte příliš daleko od sebe, elektrický signál mezi nimi bude putovat o pár nanosekund déle a váš obvod nebude moci pracovat při vysokém taktu řídících hodin.

d982a916-ab13-40bb-bd29-79609340493a97a594eb-e155-4c31-966d-22a4631be508
Součástí pokročilého softwaru pro vývoj čipů je časový simulátor s osou jednotlivých signálů. Všimněte si měřítka. Tady se hraje na pikosekundy a nanosekundy

Když naopak obě buňky postavíte vedle sebe, budou fyzicky překážet dalším cestičkám pro elektrony, které je budou muset obkroužit, čímž se opět prodlouží vzdálenost, kterou musí elektrický signál vykonat, a tak poskočí i doba, za kterou je schopna buňka provést svoji atomickou operaci.

A teď si představte, že se tu nebavíme o ploše fotbalového hřiště, na kterém náš Jarda Ořech staví z kostiček Lega onen model jižního Bavorska, ale čip s půdorysem poštovní známky. Čip s půdorysem poštovní známky, který se skládá z milionů a milionů hradel a ta z hromady a hromady tranzistorů.

Stručně řečeno, nepomohla by vám ani vlaková souprava RegioJetu směr Split nacpaná k prasknutí namnoženými Sheldony Coopery.

Holka, co vyhrála matematickou olympiádu

Inženýři a experti na A.I. si proto už před lety položili kruciální otázku: Když už používáme strojové učení a neuronové sítě k detekci kočiček a pejsků, nemohli bychom ten počítač podobným způsobem naučit, aby dokázal skládat čipy?

Ano, mohli, řekla si jednoho dne Azalia Mirhoseini, a s kolegy loni na jaře publikovala na Arxivu závěry jejich práce v článku Chip placement with deep reinforcement learning (PDF).

817c546c-a625-4ef3-b830-7e584b7006b2
Přepere vás v matematické olympiádě, poníží vás svojí disertační prací a nakonec ohromí počtem stipendií. Azalia Mirhoseini, jedna z master-mindů laboratoře Google Brain

Azalia je ve všech ohledech prototyp dokonalosti. Zatímco my jsme v roce 2004 pařili po večerech World of Warcraft, Azalia zvítězila v Íránské národní matematické olympiádě. O šest let později už sbírala jedno stipendium za druhým od Microsoftu po IBM a v roce 2015 obhájila svoji doktorskou práci na Riceově univerzitě v Houstonu na téma A heterogeneous algorithm, software, and hardware co-design framework for large scale machine learning. Ano, samozřejmě to byla nejlepší univerzitní práce toho roku.

K nelibosti konkurence o rok později zakotvila v Googlu a jak jinak v jeho sekci pro umělou inteligenci Brain, kde dodnes pracuje jako vedoucí týmu, se kterým konečně zpracovala i zmíněnou studii. Po patřičném recenzním řízení se počátkem června dočkala publikace v renomovaném časopisu Nature pod názvem A graph placement methodology for fast chip design.

Zpětnovazební učení

Tak a teď už k tomu podstatnému. Výzkumníci z Brainu navrhli neuronovou síť se zpětnovazebním učením (reinforcement learning), což je dnes v různých modifikacích zdaleka nejrozšířenější typ učení, které dobře známe i ze svých lidských životů. Když stejně jako autor tohoto článku zapálíte počátkem 90. let minulého století lesík v sousedství brněnské ZŠ Masarova, zpětnou vazbou vám bude důtka ředitele školy.

f05e52e0-f6c1-4e42-93f4-b43d0a9522cb
Když zapálíte les, dostanete důtku ředitele školy. Tedy zpětnou vazbu

Pro zpětnovazební neuronku, která hledá kočky na vstupních fotografiích, je pak zpětnou vazbou informace, zdali se skutečně jednalo o kočku, či nikoliv. Podle toho si ohromnou rychlostí postupně upravuje vnitřní váhy svých softwarových neuronů a po pár dnech na farmě grafických karet a tisících shlédnutých fotek ví, jak na pixelové úrovni vypadá kočka a desítky dalších entit.

Neuronce stačilo šest hodin, expert by potřeboval týdny

V případě Googlu se neuronka na základě hromady návrhů integrovaných obvodů ve formě tzv. netlistů (dnes už standardní formát sítě vzájemně propojených komponent integrovaného obvodu) učila, jak má vypadat ten nejlepší.

9b14b01c-2828-4d11-b2e4-74c6fbd658f9
Rozložení prvků na čipu podle lidského experta (vlevo) a pomocí A.I. (vpravo). Zelenou barvou jsou označená nízkoúrovňová hradla, bílou barvou pak komplexnější makra (RAM a další IP jádra). Náhledy jsou z důvodu ochrany autorských práv rozmazané.

Výsledek je ohromující. Technologie Googlu totiž dokázala navrhnout rozložení čipu při velmi dobrém poměru PPA za pouhých 6 hodin. Pro srovnání, neuronka za tu dobu udělala práci, ke které by dnes potřeboval inženýr s mnohaletou praxí a se současnými komerčními prostředky včetně poloautomatických generátorů netlistů několik dlouhých týdnů.

A.I. čipy zítřka dokáže navrhnout opět jen A.I.

Algoritmus zároveň neskládal jen nějaké abstraktní testovací čipy, ale i ty skutečné – dokáže lépe rozložit prvky právě na A.I. procesorech včetně Tensor Processing Unit od samotného Googlu. Příští verzi už možná navrhnou samy stroje.

A tím se konečně dostáváme k nadpisu dnešního článku. Pokud se už blížíme bodu zlomu, kdy lepší procesor pro běh A.I. aplikací dokáže navrhnout opět jen A.I., dostáváme se jako lidstvo tak trochu na druhou kolej – přestáváme mít intelektuální kontrolu.

Už jednoduše nepochopíme, proč stroj navrhl ten nový čip právě takto – bude to nad naše mentální schopnosti. V situaci, kdy jsme už na fyzikální hranici další miniaturizace a ty nejlepší procesory jsou již nyní neuvěřitelně složité struktury milionů a milionů navzájem propojených hradel sestavených z mikroskopických tranzistorů, je to dost možná jediná cesta.

Ostatně, experimentální neuronka Googlu umí nejen skládat efektivnější čipy podle znalostního modelu jejich současných návrhů, ale vědci ji navrhli tak, aby se mohla sama i nadále zdokonalovat.

Diskuze (72) Další článek: GitHub má A.I. technologii, která generuje smysluplný kód. Komu ten kód ale opravdu patří?

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,