Az Intel részletezte a Xeon Phi újításait

A nyár elején írtunk az Intel Xeon Phi gyorsítókártyájáról, melyről a vállalat a Hot Chips 24 alkalmával számos új részletett leleplezett. Minden információt nem részletezünk újra, így érdemes elolvasni az előbb linkelt hírt, ami megfelelő alapozást nyújt a friss adatokhoz.


[+]

Az Intel túl szép diagramokkal nem készült, de a lényeg így is látszik. A fenti kép a Knights Corner kódnevű lapka logikai felépítését mutatja. A rendszer négy nagy részre van osztva és egy csoport két darab 64 bites memóriavezérlőt, illetve maximum 16 darab MIC magot rejt. A vállalat elmondta, hogy az összes mag egyik Xeon Phi verzióban sem lesz aktív, így mindegyik termék kevesebb, mint 64 magot tartalmaz. A törölt Knights Ferry fejlesztéshez képest a legnagyobb változás a memóriavezérlőt érte. A gyűrűs megoldás maradt, de az Intel alaposan kigyúrta a teljesítményét, és egy elképesztően komplex vezérlő felel azért, hogy a lapka skálázódjon. A Larrabee problémája pont a skálázhatóság volt, így borítékolható volt, hogy az utódprojektnek számító MIC esetében az Intel a problémás részt teljesen felülvizsgálja.

Knights Cornerben összesen 10 gyűrűs busz van, 5-5 egy-egy irányban. A buszok a másodlagos gyorsítótárakat kötik össze, egy-egy megállóval, és az adat órajelenként egy megállót vándorol. Az 5-5 gyűrűs buszból 1-1 a BL busz, ami 512-512 bit széles. Ez a busz szállítja az adatokat. A többi 4-4 busz közül 2-2 az AK, míg 2-2 az AD jelzést viseli, előbbiek a koherenciát biztosító információkat, utóbbiak pedig a memóriacímeket szállítják. Az Intel a Knights Ferry esetében feleannyi AK és AD buszt használt, és ez eléggé limitálta a skálázhatóságot. A MIC magok 32 MB-os megosztott L2 gyorsítótárat használnak MESIF koherencia-protokollt alkalmazva, vagyis mindegyik mag olvashatja a teljes gyorsítótárat, de csak a saját 512 kB-os szeletükbe írhatnak. Mindegyik maghoz kapcsolódik még egy úgynevezett TD (tag directory), amelyek logikailag nincsenek kirendelve a magokhoz. Alapvetően egyetlen egységről van szó, mely arra szolgál, hogy ha szükség van egy adatra, akkor a TD-t lehet erről megkérdezni. Ha az adat megtalálható az L2 tárban, akkor a TD megmondja, hogy hol van, ellenkező esetben a fedélzeti memóriához kell fordulni, hiszen a kívánt információ ott található. Ez egy nagyon fontos dolog az architektúrán belül, mivel a legtöbb HPC munkafolyamat blokkosított algoritmusokat használ, ha ezek méretét az L2 gyorsítótárhoz szabják a programozók, akkor elég hatékonyan működhet a Knights Corner.

A magok tekintetében igazából alapvetően az eredeti Pentium in order szuperskalár dizájnja köszön vissza, de a MIC magok azért mások, hiszen négy szálon dolgoznak, illetve a lebegőpontos egység 512 bites, de ezt az Intel már korábban elárulta. Az L1 adat és utasítás cache 32-32 kB-os, emellett a cég megjegyezte, hogy az x86-tal kapcsolatos részek a processzormag kiterjedésének kevesebb mint 2%-át emésztik fel, beleszámolva a megosztott másodlagos gyorsítótár magnak járó szeletét. Fontos azonban megemlíteni, hogy a Larrabee-ből kialakított MIC architektúra annyira különbözik a hagyományosnak tekinthető x86/AMD64-es processzoroktól, hogy az x86-os programokkal való bináris kompatibilitás nem lehetséges. Ez persze nem gond, hiszen a Xeon Phi egy gyorsítókártya, és több szerepet nem is szán neki az Intel.

Tekintve, hogy egy adatpárhuzamos processzorról van szó külön rendszert alkalmaz a memória olvasására (gather) és írására (scatter). Ezek egyszerre 16 különböző memóriacímről olvasnak, és ennyire írnak. Ez nem újdonság, hiszen mindegyik adatpárhuzamos processzor, azaz GPU hasonló módon működik, de az Intel számára ez a terep új, ugyanakkor szükséges, hiszen így kell etetni az 512 bites SIMD vektort. Ez volt a Larrabee koncepciójának második nagy gondja, hiszen 16 különböző memóriacím betöltésével a gyorsítótárban 16 sor íródik felül, és tekintve, hogy mennyi processzormag dolgozik párhuzamosan igen nagy a valószínűsége a tévesztés (cache miss) lehetőségének, azaz az új adatok betöltésével az egyik processzormag akár el is vesztheti a feldolgozásra váró információkat, így újra be kell őket tölteni a memóriából. Mivel a memória elérése lassú, így nagyon fontos az előbbi szituációt elkerülni. Az Intel ide egy trükköt vezetett be. A 16 különböző memóriacímről történő beolvasás során a gyorsítótárban a sorok nem csak egyszerűen felülíródnak a memóriából beszerzett adattal. A rendszer ugyanis előbb még megnézi, hogy a felülírni kívánt sor esetleg tartalmaz-e olyan adatott, amit esetleg valamelyik mag kér. Ha nem, akkor a sor felülíródik, de ha valamelyik mag kéri az adatot onnan, akkor az a felülírás előtt még kiolvasásra kerül. Ez a megoldás persze nem a legkedvezőbb, de a MIC architektúra működését figyelembe véve aligha lehet jobban alkotni.

Az Intel a Xeon Phi termékek startját továbbra is a negyedik negyedévre tervezi, így a Knights Corner kódnevű lapka együtt érkezik az NVIDIA GK110-es megoldásával, ami izgalmas csatát ígér.

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények

Hirdetés