Az eszközön lévő CPU másodpercenként több millió számítást hajt végre, és felelős a számítógép működéséért. A CPU-val az aritmetikai feldolgozó egység (ALU) dolgozik, amely a matematikai feladatokért felel, és amelyet a CPU mikrokódja vezérel.
Nos, ez a CPU mikrokód nem statikus, és javítható, és az egyik ilyen fejlesztés az Intel AVX-512 utasításkészlete volt. Az Intel azonban készen áll arra, hogy megölje az AVX-512-t, végleg eltávolítva a funkcionalitást a CPU-kból. De miért? Miért öli meg az Intel az AVX-512-t?
Hogyan működik az ALU?
Az AVX-512 utasításkészlet megismerése előtt elengedhetetlen, hogy megértse az ALU működését.
Ahogy a neve is sugallja, az aritmetikai feldolgozó egységet matematikai feladatok elvégzésére használják. Ezek a feladatok olyan műveleteket tartalmaznak, mint az összeadás, szorzás és lebegőpontos számítások. E feladatok elvégzéséhez az ALU alkalmazás-specifikus digitális áramkört használ, amelyet a CPU órajele hajt meg.
Ezért a CPU órajele határozza meg az utasítások feldolgozási sebességét az ALU-ban. Tehát, ha a CPU 5 GHz-es órajelen működik, az ALU 5 milliárd utasítást tud feldolgozni egy másodperc alatt. Emiatt a CPU teljesítménye az órajel növekedésével javul.
Ez azt jelenti, hogy a CPU órajelének növekedésével a CPU által termelt hő mennyisége nő. Emiatt az energiafelhasználók folyékony nitrogént használnak rendszerük túlhajtásához. Sajnos ez a hőmérséklet-emelkedés magas frekvenciákon megakadályozza a CPU-gyártókat abban, hogy egy bizonyos küszöb fölé emeljék az órajel frekvenciáját.
Tehát hogyan kínál egy új generációs processzor jobb teljesítményt a régebbi iterációkhoz képest? Nos, a processzorgyártók a párhuzamosság fogalmát használják a teljesítmény növelésére. Ez a párhuzamosság többmagos architektúra használatával érhető el, ahol több különböző feldolgozómagot használnak a CPU számítási teljesítményének javítására.
A teljesítmény javításának másik módja a SIMD utasításkészlet használata. Egyszerűen fogalmazva, az egyetlen utasítás több adatú utasítás lehetővé teszi az ALU számára, hogy ugyanazt az utasítást hajtsa végre különböző adatpontokon. Ez a fajta párhuzamosság javítja a CPU teljesítményét, az AVX-512 pedig egy SIMD utasítás, amelyet a CPU teljesítményének növelésére használnak meghatározott feladatok végrehajtása során.
Hogyan jutnak el az adatok az ALU-hoz?
Most, hogy alapvető ismereteink vannak az ALU működéséről, meg kell értenünk, hogyan jutnak el az adatok az ALU-hoz.
Az ALU eléréséhez az adatoknak különböző tárolórendszereken kell keresztülhaladniuk. Ez az adatút egy számítástechnikai rendszer memóriahierarchiáján alapul. A hierarchia rövid áttekintése az alábbiakban található:
- Másodlagos memória: A számítástechnikai eszköz másodlagos memóriája egy állandó tárolóeszközből áll. Ez az eszköz folyamatosan képes adatokat tárolni, de nem olyan gyors, mint a CPU. Emiatt a CPU nem férhet hozzá közvetlenül a másodlagos tárolórendszerből származó adatokhoz.
- Elsődleges memória: Az elsődleges tárolórendszer véletlen hozzáférésű memóriából (RAM) áll. Ez a tárolórendszer gyorsabb, mint a másodlagos tárolórendszer, de nem képes tartósan tárolni az adatokat. Ezért, amikor megnyit egy fájlt a rendszeren, az a merevlemezről a RAM-ba kerül. Ennek ellenére még a RAM sem elég gyors a CPU számára.
- Cache memória: A gyorsítótár a CPU-ba van beágyazva, és a számítógép leggyorsabb memóriarendszere. Ez a memóriarendszer három részre oszlik, nevezetesen a L1, L2 és L3 gyorsítótár. Minden adat, amelyet az ALU-nak fel kell dolgoznia, a merevlemezről a RAM-ba, majd a gyorsítótárba kerül. Ennek ellenére az ALU nem tud hozzáférni az adatokhoz közvetlenül a gyorsítótárból.
- CPU regiszterek: A számítástechnikai eszközök CPU regisztere nagyon kicsi, és a számítógép architektúrája alapján ezek a regiszterek 32 vagy 64 bit adatot tárolhatnak. Miután az adatok bekerültek ezekbe a regiszterekbe, az ALU hozzáférhet hozzájuk, és végrehajthatja az adott feladatot.
Mi az AVX-512, és hogyan működik?
Az AVX 512 utasításkészlet az AVX második iterációja, és 2013-ban került az Intel processzorokhoz. Az Advanced Vector Extensions rövidítése, az AVX utasításkészletet először az Intel Xeonjában vezették be. Phi (Knights Landing) architektúra, és később eljutott az Intel szerverprocesszoraihoz a Skylake-X-ben CPU-k.
Ezenkívül az AVX-512 utasításkészlet eljutott a Cannon Lake architektúrájú fogyasztói rendszerekhez, és később az Ice Lake és a Tiger Lake architektúrák is támogatták.
Ennek az utasításkészletnek a fő célja az volt, hogy felgyorsítsa az adattömörítést, képfeldolgozást és kriptográfiai számításokat magában foglaló feladatokat. A régebbi iterációkhoz képest dupla számítási teljesítményt kínáló AVX-512 utasításkészlet jelentős teljesítménynövekedést kínál.
Tehát hogyan duplázta meg az Intel CPU-i teljesítményét az AVX-512 architektúrával?
Nos, amint azt korábban kifejtettük, az ALU csak a CPU regiszterében lévő adatokhoz férhet hozzá. Az Advanced Vector Extensions utasításkészlet megnöveli ezeknek a regisztereknek a méretét.
Ennek a méretnövekedésnek köszönhetően az ALU több adatpontot tud feldolgozni egyetlen utasításon belül, növelve a rendszer teljesítményét.
Ami a regiszterméretet illeti, az AVX-512 utasításkészlet harminckét 512 bites regisztert kínál, ami duplája a régebbi AVX utasításkészlethez képest.
Miért fejezi be az Intel az AVX-512-t?
Amint azt korábban kifejtettük, az AVX-512 utasításkészlet számos számítási előnyt kínál. Valójában a népszerű könyvtárak, mint például a TensorFlow, az utasításkészletet használják az utasításkészletet támogató CPU-k gyorsabb számítási elvégzésére.
Tehát miért tiltja le az Intel az AVX-512-t a legutóbbi Alder Lake processzorain?
Nos, az Alder Lake processzorok eltérnek az Intel által gyártott régebbi processzoroktól. Míg a régebbi rendszerek ugyanazon az architektúrán futó magokat használtak, az Alder Lake processzorok két különböző magot használnak. Ezeket a magokat az Alder lake CPU-kban ún P és E-magok és különböző architektúrák hajtják őket.
Míg a P-magok a Golden Cove mikroarchitektúrát használják, az E-magok a Gracemont mikroarchitektúrát. Ez az architektúrabeli különbség megakadályozza, hogy az ütemező megfelelően működjön, amikor bizonyos utasítások futhatnak az egyik architektúrán, de nem a másikon.
Az Alder Lake processzorok esetében az AVX-512 utasításkészlet egy ilyen példa, mivel a P-magok rendelkeznek az utasítás feldolgozásához szükséges hardverrel, az E-magok viszont nem.
Emiatt az Alder Lake CPU-k nem támogatják az AVX-512 utasításkészletet.
Ennek ellenére az AVX-512 utasítások futhatnak bizonyos Alder Lake CPU-kon, ahol az Intel fizikailag nem egyesítette őket. Ehhez a felhasználóknak le kell tiltaniuk az E-magokat a BIOS alatt.
Szükséges az AVX-512 a fogyasztói lapkakészletekhez?
Az AVX-512 utasításkészlet növeli a CPU regiszterének méretét a teljesítmény javítása érdekében. Ez a teljesítménynövekedés lehetővé teszi a CPU-k számára, hogy gyorsabban törjék össze a számokat, ami lehetővé teszi a felhasználók számára, hogy nagyobb sebességgel futtassák a videó/audió tömörítési algoritmusokat.
Ennek ellenére ez a teljesítménynövekedés csak akkor figyelhető meg, ha a programban meghatározott utasítás az AVX-512 utasításkészleten való futtatásra van optimalizálva.
Emiatt az olyan utasításkészlet-architektúrák, mint az AVX-512, jobban megfelelnek a szerver munkaterhelésének, és a fogyasztói szintű lapkakészletek olyan összetett utasításkészletek nélkül is működhetnek, mint az AVX-512.