Az elmúlt évben számoltunk be először az NVIDIA szuperszámítógépes jövőképéről, illetve az alapokat adó Echelon projektről. A vállalat az elmúlt időszakban a heterogén módon programozható lapkák fejlesztésének fontosságát ecsetelte, amiben kulcsszerepet játszik az ARMv8 alapokra épülő Denver projekt, illetve a Kepler architektúra, valamint az integrációt komoly szinten megvalósító Maxwell APU is. Utóbbi két fejlesztésről a vállalat a GTC Asia 2011 nevű rendezvényen beszélt. Ezekből világosan látszik, hogy a főbb fejlesztési szempontokat az integráció jelenti, de a vállalat egy tanulmány formájában a hosszú távú Echelon projektet is részletesen elemezte.
Rögtön az elején érdemes leszögezni, hogy a tanulmány nem számol a dedikált GPU-kkal. Mire az Echelon projektnek eredménye lesz, már 2017-et írunk, és az NVIDIA úgy gondolja, hogy ekkorra már nem lesz értelme VGA-t gyártani. A technikai oldalon sokkal nagyobb előnye lesz annak, hogy a CPU és a GPU egyetlen lapkában kap helyet, és teljesen koherens memóriát használnak. Ez lehetővé teszi a programozóknak, hogy csak a rendszermemóriába dolgozzanak, továbbá elkerülhetők a külső buszok által keletkező korlátok, mivel a lapkán belüli, úgymond integrált kommunikációs csatorna mindig nagyságrendekkel gyorsabb lesz, mint a chipek közötti (példaként felhozva a PCI Express buszt).

Az NVIDIA szerint a heterogén módon programozható lapkák jelentik a jövőt, még ha ez programozói oldalról nem is kedvező helyzet, de a teljesítmény megfelelő skálázása szükségessé teszi ezt a lépést. Ezzel gyakorlatilag minden iparági konkurens egyetért, így az NVIDIA abszolút nem jár idegen ösvényt, noha az újszerű felépítés kétségtelenül új programozási modellt követel. Alapvetően a mai többmagos processzorok homogén módon programozhatók, vagyis a feldolgozóegységek azonos karakterisztikával rendelkeznek, azonos memóriahierarchiát használnak, és a folyamatok párhuzamos feldolgozásának kivitelezése is megegyező. Ez a programozó nézőpontjából egyszerű (már amennyire az egymagos éra után az lehet), hiszen az adott folyamatot optimalizálni lehet az adott részegységre. A heterogén módon programozható lapkák ezen csavarnak egyet, ami rögtön azt jelenti, hogy az adott chipben kétféle részegység kap helyet, melyek különböző karakterisztikával rendelkeznek, és eltérő memóriahierarchiát használnak, illetve a folyamatok párhuzamos feldolgozásának kivitelezése is más. A programozó szemszögéből a helyzet rögtön bonyolulttá válik, azaz meg kell érteni, hogy az adott folyamatot melyik részegységen érdemes futtatni a hatékony feldolgozás érdekében.
Ez az a pont, ahol a heterogén módon programozható lapkák jelenleg szenvednek, mert az integráció jelenlegi szintje nem teszi lehetővé a megfelelő általános programozhatóságot, de a cégek azon dolgoznak, hogy az architekturális integrálás ezt a problémát leküzdje. Elmondható tehát, hogy heterogén módon programozható chipek már ma is léteznek x86/AMD64 (AMD APU-k), vagy akár ARM (ZiiLabs SoC-ok) vonalon is, ám lényegében csak akkor lesz ennek az elvnek komoly előnye, ha a gyártók a CPU- és a GPU-magokat egymás mellé tervezik, méghozzá úgy, hogy azok technikailag és működésben kiegészítsék egymást. Ennek alapvető követelménye, hogy a CPU és a GPU egységes címtartományt és teljesen koherens memóriát osszon meg egymással, továbbá a GPU kezelje a virtuális memóriát.
Visszatérve a tanulmányra, az NVIDIA alapvetően a két részegységet TOC (throughput-optimized core) és LOC (latency-optimized core) jelzővel illeti. Előbbi tekinthető hagyományos értelemben grafikus processzormagnak, azaz adatpárhuzamos végrehajtásra optimalizált egységnek, míg utóbbi lényegében a központi processzormag, azaz egy késleltetésre érzékeny feldolgozó, amit kifejezetten az egy szálon elérhető magas teljesítmény miatt alkalmaznak a mérnökök. A heterogén módon programozható lapkák ebből a szempontból egyszerűek. A magas teljesítményről az hatékonyabb TOC-ok gondoskodnak, vagyis ezek végzik a munka oroszlánrészét, míg a LOC-ok alapvetően az operációs rendszer futtatásáért, és az alacsony késleltetést igénylő folyamatok feldolgozásáért felelnek. Azt talán mondani sem kell, hogy a technikai értelemben butább TOC-ok számítási teljesítménye messze felülmúlja az amúgy okosabb LOC-ok képességeit, így nem véletlen, hogy a feldolgozás nagy részét ezek a részegységek végzik majd.
Az NVIDIA a LOC felépítését nem részletezte, de tipikusan egy átlagos processzormagra fog hasonlítani. A TOC esetében már más a helyzet. Itt a rendszer nyolc darab részelemből áll, melyek 64 darab konkurens szálat kezelő MIMD egységek. Ezek felfűzhetők egy SIMD tömbbe, ami növeli a feldolgozás hatékonyságát egyes kódok esetében. A részelemek az L1 adat gyorsítótárra kapcsolódnak, és megosztott L1 utasítás gyorsítótárat használnak. Magukon a részelemeken belül az L0 adat és utasítás gyorsítótár, a regiszterterületek, illetve konkrétan a feldolgozók találhatók.

Az Echelon projekt számokban [+]
Az Echelon projekt ezen a ponton LIW (Long Instruction Word) architektúrára épít, ami egyfajta VLIW (Very Long Instruction Word) megvalósítás. Ez maximum három integer, egy memória és két dupla pontosságú lebegőpontos operációt jelent egyetlen részelemen. Ezenkívül az utasításarchitektúra támogatja a részleges utasításszavak párhuzamos végrehajtását, vagyis az előbb vázolt lehetőség mellett négy szimpla és két dupla pontosságú lebegőpontos operáció végrehajtása is lehetséges. Az utasításszavak kialakításáról a driver fordítója gondoskodik, vagyis a párhuzamosítás statikus elven történik, így a hardvernek ezzel nem kell törődnie. Ezzel a rendszer hatékonyabban működhet, de tipikusan nagyobb terhet ró a rendszerprogramozókra a fordító megfelelő optimalizálása.

Az Echelon projekt logikai felépítése [+]
A TOC-ok és a LOC-ok közötti kommunikációról egy chipen belüli hálózat (NoC) gondoskodik, melyhez kapcsolódnak majd a memóriavezérlők és az egyéb részegységek, mint például a többi lapkával való kommunikációt biztosító hálózati interfészek. Mielőtt az Echelon projekt számadatait részleteznénk, megjegyezzük, hogy mindez csak egy tervezet, amire konkrét termékek épülhetnek a jövőben, de azok esetlegesen eltérhetnek a felvázolt kialakítástól. Éppen ezért az NVIDIA tanulmánya elsősorban elméleti alapokra épít.
Az Echelon projektben az NVIDIA 16 darab DRAM vezérlővel dolgozik, mely lényegében tizenhat csatornás memóriabuszt jelent, csatornánként 100 GB/s-os adatátviteli tempóval. A hálózati interfészek száma 16 lesz, négy tömbbe szerveződve. LOC egységből nyolcat terveznek, és ezek ARM-alapú proceszormaggal, illetve dedikált L1 és L2 gyorsítótárral operálnak majd. A TOC-okat az NVIDIA szintén tömbökbe szervezi. A chipen belüli hálózatra 64 darab TOC-halmaz kapcsolódik, melyek egyenként négy TOC-ból állnak. Ebből adódik, hogy a lapkában összesen 256 darab TOC található. Mindegyik TOC 1 MB-os, dedikált L2 gyorsítótárat kap négy darab 256 kB-os szeletben, amit 256 GB/s-os tempóban érnek el a feldolgozók. Ezek a cache-szeletek a TOC halmazokon belül összefűzhetők, és így felhasználhatók egy megosztott L3 gyorsítótár formájában, ha a feldolgozás ezzel hatékonyabb. A TOC-ok egyébként 64 GB/s-os tempóval érik el a belső hálózatot, mely 256 GB/s-os adatátviteli tempóval működik.

A gyártástechnológia várható fejlődése [+]
Az Echelon projekt esetében az NVIDIA 10 nm-es gyártástechnológiával és 2 GHz-es órajellel számolt, és a lapka 16 TFLOPS-os teljesítményre lenne képes 150 wattos fogyasztáson belül, a memória-sávszélesség pedig 1,6 TB/s lenne. A tervekre továbbra is azt tudjuk mondani, hogy impozánsak, illetve a tanulmányt látva végleg levonhatjuk azt a következtetést, hogy az NVIDIA sem számol hosszú távon a dedikált GPU-kkal. A fejlesztések irányát tekintve ez nem meglepő, mivel az integrációval a dedikált GPU-k is egyre jobban kötődnek majd az adott gyártó platformjához, azaz, még ha fizikailag különálló egységnek is tekinthetők, akkor is elmondható, hogy az összes képességüket csak platform szintjén tudják majd kamatoztatni. Ez óhatatlanul oda vezet, hogy a GeForce-ok összes funkcióját csak a később érkező NVIDIA APU-k mellett lehet hasznosítani, míg a Radeonokról is elmondható ugyanez, csak éppen az AMD APU-khoz kötődve.

A DRAM-ok várható fejlődése [+]
Az Echelon projekt esetében még egyszer hangsúlyozzuk, hogy ez nem konkrét chip, hanem egy tervezet, amiből majd egy konkrét APU születik 2017 környékén. Valószínű, hogy a rendszer általánosabb alapjait hamarabb beveti az NVIDIA, így a Maxwell APU esetében már lehet számítani a komoly, úgymond architekturális integrációra, míg manapság több pletyka is kering egy Einstein kódnevű APU-ról, mely valószínűleg a Maxwell utáni nagyobb vérfrissítés lesz.
Abu85