Procesory? Hitem jsou akcelerátory

Představte si, že máte k dispozici velmi chytré a univerzální zařízení, ale vy ho přesto vyměníte za mnohem jednodušší, které navíc zvládne dělat jen jedinou věc. Proč byste to dělali? Třeba proto, že potřebujete udělat právě jen tu jedinou věc, ale důležité je, aby se tak stalo co nejrychleji a nejefektivněji. Je to možná paradox, ale pokud chcete vyvinout nejvýkonnější „superpočítač“, budete hledat jakoukoli úsporu času, energie či místa, a zmíněný princip tak nemůžete opomenout. Při návrhu superpočítače opravdu řešíte každý teplotní stupeň i každý mikrometr vodivých spojů. Jednoduše jakékoli zlepšení výkonu. A proto vyměníte procesor za akcelerátor.

„Žijeme v době, kdy se potkáváme s čím dál komplexnějšími a komplikovanějšími problémy a úkoly a proto je důležité najít způsob, jak je řešit co nejjednodušeji a nejrychleji. Tradičně tento úkol plní v počítačích procesory, které svoji komplexností vyřeší veškeré, mnohdy i velmi složité, operace. Často se však setkáme s tím, že požadovaná operace není tak komplikovaná. Proč na ni tedy plýtvat výkon procesoru?,“ otevírá debatu na téma akcelerátorů Konstantin Selucký. Milovník vína, který se zabývá mission critical systémy prakticky celý život. Od roku 1977 do roku 1987 v rámci Československé akademie věd, od roku 1988 až do současnosti pod hlavičkou společnosti Hewlett Packard či Hewlett Packard Enterprise.

Klasické procesory (CPU) mají univerzální architekturu a veškeré operace v nich probíhají programově pomocí velkého souboru instrukcí. Avšak v akcelerátorech stačí speciální mikrokód (jedna sada instrukcí), díky kterému se dokážou soustředit na jednu jedinou věc. Například výpočty v matici. „Akcelerátor, když to celé hodně zjednoduším, znamená, že převedu instrukční logiku (tj. co má daný procesor dělat) přímo do hardwaru. Ten pak umí jen tu jedinou sadu operací, ale oproti běžnému procesoru, ji dělá násobně rychleji. Jako například výpočty výše zmíněných matic, které jsou klíčové například pro grafické operace*, kdy jednotlivé procesy mohou probíhat nezávisle na sobě a paralelně.  A to je ve své podstatě princip celého high performance computingu – komplexní úlohy jsou rozloženy na základní operace, které paralelně probíhají na „malých“ specializovaných počítačích (jádrech procesorů), kterých může být tisíce v jednom čipu,“ vysvětluje Konstantin Selucký.

*Pro představu ze světa osobních počítačů: Ve většině počítačů naleznete grafickou kartu (Graphic Processing Unit, GPU), která je vlastně typem grafického akcelerátoru. „Pod pokličkou“ je to však stále procesor, který v tomto případě stojí vedle „hlavního procesoru“ CPU (Central Processing Unit). Proč potřebujeme tedy dva procesory v počítači? Zde přichází hlavní myšlenka akcelerátoru. Klasický procesor musí vykonávat různé typy operací a výpočtů, abyste mohli spustit vaše oblíbené programy nebo hry a má v sobě obrovskou sadu instrukcí – je univerzální a spustíte s ním všechno (vykoná i nejsložitější operace). Naopak GPU má jediný úkol – dostat obraz na monitor. Toho dosahuje, z matematického hlediska, jednoduchým výpočtem (vektorová algebra – výše zmíněné matice). Jelikož chceme, aby obraz byl pro nás plynulý, musí těchto výpočtů dělat tisíce pro každý pixel obrazu. Proto je GPU optimalizovaná právě na tuto konkrétní operaci. Pro srovnání, moderní procesory mají 4-8 jader a tudíž jsou schopné vést 4-8 komplexních a složitých operací paralelně. Na druhé straně stojí GPU, kde se počet jader pohybuje v tisících, tj. jsou schopné uskutečnit tisíce paralelních operací, které jsou, v porovnání s operacemi CPU, primitivní a jednoduché. To je však klíčové, pokud mají řídit desítky miliónů pixelů obrazu každou sekundu. Rychlost (výkon) GPU tak nevychází z velkého výkonu jednotlivých jader čipu, ale jednoduše z vysokého počtu „slabých“ jednotek.

Pod čarou: S rozlišením monitoru 2560 x 1440 pixelů a obvyklou obnovovací frekvencí 60 Hz (FPS) musí GPU vykonat 221 184 000 operací  každou sekundu

Ideál je reálný čas

Ideální zdržení je žádné zdržení – tak velí logika lidí, kteří vyvíjejí nejdokonalejší počítače dnešní doby. A ty v praxi narážejí na řadu praktických limitů, ať už v oblasti škálovatelnosti nebo fyziky. „Naším přáním je, aby se výpočetní operace řešily takovou rychlostí, aby umožňovaly rozhodování v reálném čase. A to ve většině případů není možné zvládnout jen s klasickými procesory. Procesoru musíte předávat velký objem dat, jsme limitováni propustností sběrnic a následně jsme omezováni fyzikálními vlastnostmi materiálů, které neumožňují zkonstruovat zásadně výkonnějsí procesorová jádra. Akcelerátory, jak už jejich název napovídá, prostě umí jedinou věc, urychlit konkrétní operaci s daty. Podle jejich využití jsou jim přiděleny vhodné instrukce skrze již zmíněný mikrokód a díky tomu řeší dané operace bezchybně a s bez zdržení, velmi rychle. Proto je v tuhle chvíli po nich taková poptávka – a všude, kde je potřeba extrémní rychlost, tak nahrazují klasické procesory. A kromě již běžných akcelerátorů, jako jsou např. GPU (grafický akcelerátor) a FPGA (programovatelná hradlová pole), již v laboratořích vznikají akcelerátory na zcela jiných fyzikálních principech – např. akcelerátory optické (odkaz – https://spectrum.ieee.org/semiconductors/processors/hpes-new-chip-marks-a-milestone-in-optical-computing),doplňuje Luboš Kolář, další z předních českých odborníků na oblast high performance computingu.

V blízké budoucnosti navíc rozmach akcelerátorů umocní velká revoluce, která už byla úspěšně otestována v laboratořích. Jedna věc je totiž data rychle zpracovat, druhá věc je zpracovaná data přesunout, předat dál. A zde bychom se skokové změny v rychlosti měli dočkat s příchodem fotoniky – přenosem dat v počítačích pomocí světla místo klasických měděných kabelů. „Potenciál akcelerátorů je nyní omezen rychlostí, kterou se přemisťují elektrony v elektrickém obvodu (cca 10 % rychlosti světla). Proto kromě využití klasických optických kabelů pro přenos dat mezi jednotlivými počítači, je revoluční především využití těchto principů i uvnitř počítače, u vnitřních sběrnic, až k procesoru a paměti. Přestože se každé dva roky zvyšuje počet transistorů v procesorech na dvojnásobek (Moorův zákon), samotný průtok dat (elektrického proudu) se kvůli fyzikálním zákonům nemění. A proto zvýšení rychlosti komunikace procesoru je klíčové, pokud chceme dosahovat dalšího zvyšování celkového výkonu. a tak schopnost procesoru komunikovat s okolním prostředím je klíčová pro možnost dalšího zvyšování celkového výkonu. Nahrazení elektrického proudu světlem tak násobně urychlí přenos dat, umožní vytvořit kompaktnější čipy a  také přinese možnost přenosu několika signálů najednou. V klasickém el. obvodu může procházet jen „jeden proud“, tj. jeden signál, avšak optické spoje mohou přenášet světlo o různých vlnových délkách a tím přenášet více informací najednou. Fotonika významně redukuje potřebné místo a  omezuje tvorbu přebytečného tepla a tím snižuje energetickou náročnost (samotný vznik tepla a následné chlazení). To vše rychlostí světla, v reálném čase,“ uzavírá Luboš Kolář.