Minulý měsíc AMD oficiálně vydalo serverové procesory pojmenované Epyc. Tato CPU jsou vyráběna z více kusů křemíku – v pouzdru jsou čtyři kusy čipu Zeppelin, který je společným základem i pro Ryzeny. Zdá se, že o podobnou technologii se zajímá i Nvidia, které by ji mohla použít u svých GPU. Svědčí o tom studie, kterou pracovníci firmy provedli ve spolupráci se studenty amerických univerzit a výpočetního centra při barcelonské univerzitě.
Cílem této práce bylo pomocí simulací prozkoumat, jaké efekty by vícečipová architektura mohla mít a jaké přínosy by mohla přinést. Motivací je kromě akademického zájmu patrně i možné použití této koncepce v budoucích GPU. Nvidia totiž pro enterprise sféru buduje čím dál větší a dražší GPU – poslední Volta V100 se dostala zcela mimo obvyklé meze. Ovšem výrobní technologie a stroje mají technické limity a tak nii při pominutí defektů na waferu nelze vyrobit čip větší, než je určitá hranice. Pokud by tedy přestal stačit nejistý pokrok výrobních procesů, možná Nvidii nezbude než čip rozdělit a vyrábět po částech.
Jak nasvědčuje dlouhodobé používání tzv. „MCM“ (multi-chip module) procesorů u AMD (Opterony 6100/6200/6300, Epyc) ale třeba i u IBM Power, tento přístup má své výhody. Návrh je ekonomický, jelikož čipy pro omezený trh lze využít i jinde. S menší velikostí jsou také čipy snáze a levněji vyrobitelné. V tomto případě pak také „slepenec“ dovolí vyškálovat množství výpočetních jednotek na úroveň, která se do jednoho čipu jednoduše nevejde.
Řešení MCM má ale i nevýhody, které omezují jeho výkon. Problém je zejména v tom, že jednotlivé čipy se svými paměťovými řadiči tvoří NUMA systém, kdy k části paměti je výrazně pomalejší přístup. Komunikace mezi dvěma čipy také musí překonávat delší vzdálenost a nemůže být tak efektivní jako komunikace v rámci jediného čipu (kvalita propojovací logiky se tak stává kritickou). Studie Nvidie se proto zaměřovala na to, zda by MCM řešení dokázalo dodat takové výkonnostní zisky, aby se tyto oběti vyplatily.
Pro výzkum byly údajně použité interní vývojové nástroje, simulátory a data, které se používají přímo k návrhu GPU, tudíž byla pokusy asi nejblíž reálnému vyzkoušení, jak je možné. Autoři tak mohli nasimulovat hypotetické výpočetní GPU Nvidia – zřejmě odpovídající architektuře Pascal – složené ze čtyř čipů s celkem 256 bloky SM (16 384 stream procesory) a porovnávat jej s největším reálně vyrobitelným jednočipovým protivníkem, případně teoretickým větším GPU, které by už reálně vyrobitelné nebylo.
Slepenec může proti monolitickému čipu ztrácet jen 10 % výkonu
Takové reálně vyrobitelné MCM GPU by při použití některých optimalizacích a propojení speciální koherentní logikou mohlo podle simulací být zhruba jen o 10 % pomalejší ve výpočetních úlohách proti onomu nevyrobitelnému monolitickému protějšku se stejným počtem jednotek. Přitom by ale mohlo být až o 45,5 % rychlejší než největší reálně vyrobitelné monolitické GPU. To znamená, že pro některá highendové nasazení v superpočítačích se tato konstrukce může vyplatit.
Jsou k tomu ale potřebné určité optimalizace, jak již bylo řečeno, které studie také zkoumala. Jejich cílem je zajistit, aby zpracovávaná data byla vždy co nejvíce lokalizovaná v konkrétním čipu a jeho paměti, tedy aby je sub-GPU nepotřebovala brát z pamětí sousedních čipů. V tom mohou pomoci úpravy scheduleru, aby rozděloval práci konkrétním stream procesorům s ohledem na to, kde mají fyzicky data. Stránkování paměti zároveň rozděluje fyzickou paměť na oddíly podle připojení k jednotlivým čipům, aby určitá sada dat pro jeden z čipů co nejméně míchala adresy z různých fyzických oddílů. Studie také navrhuje přidat do GPU novou mezipaměť, nazvanou L1.5 cache. Ta by byla sdílená pro všechny shadery a cachovala všechny přístupy do nelokální paměti v ostatních čipech. Její použití by mělo opět omezit zpomalující provoz na mezičipových komunikačních rozhraních.
Praktické využití MCM architektury není jisté
Celá tato studie je jen teoretická, takže nelze říci, že by šlo o přípravu na konkrétní produkt a že Nvidia s vícečipovými GPU, které by se podobaly zmíněným Epycům, skutečně chystá. Jde ale asi o řešení, které Nvidia sleduje pro případ potřeby a minimálně si ho nechává v šuplíku. Ovšem těžko říct, zda by se případně mohlo dostat i mimo výpočetní GPU a objevit se i v herní grafické kartě GeForce. GPGPU a HPC problémy jsou patrně více paralelizovatelné – ostatně tato GPU se používají ve velkých klastrech. Zatímco v oblasti HPC by MCM GPU údajně mělo být lepším řešením než prostě více samostatných GPU, v herní grafice by možná tak velký rozdíl proti režimu SLI být nemusel. MCM (NUMA) konfigurace by ovšem měla být logicky bližší jednomu GPU než SLI, takže by možná tato koncepce mohla být úspěšnější. Toto je ale asi otázka, kterou hodně dlouho neuvidíme rozřešenou.