CPU ve vašem zařízení provádí miliony výpočtů každou sekundu a je odpovědné za fungování vašeho počítače. S CPU pracuje aritmetická procesorová jednotka (ALU), která je zodpovědná za matematické úlohy a je řízena mikrokódem CPU.
Nyní tento mikrokód CPU není statický a lze jej vylepšit, a jedním takovým vylepšením byla instrukční sada AVX-512 společnosti Intel. Intel je však připraven zničit AVX-512 a nadobro odstranit jeho funkčnost ze svých CPU. Ale proč? Proč Intel zabíjí AVX-512?
Jak ALU funguje?
Než se seznámíte s instrukční sadou AVX-512, je nezbytné pochopit, jak ALU funguje.
Jak název napovídá, jednotka aritmetického zpracování se používá k provádění matematických úloh. Tyto úlohy zahrnují operace jako sčítání, násobení a výpočty s plovoucí desetinnou čárkou. K plnění těchto úkolů používá ALU digitální obvody specifické pro aplikaci, které jsou řízeny hodinovým signálem CPU.
Rychlost hodin CPU tedy definuje rychlost, kterou jsou instrukce zpracovávány v ALU. Pokud tedy váš CPU běží na taktovací frekvenci 5 GHz, ALU dokáže zpracovat 5 miliard instrukcí za jednu sekundu. Z tohoto důvodu se výkon procesoru zlepšuje se zvyšující se rychlostí hodin.
To znamená, že se zvyšující se rychlostí procesoru se zvyšuje množství tepla generovaného procesorem. Z tohoto důvodu nároční uživatelé používají při přetaktování svých systémů tekutý dusík. Bohužel toto zvýšení teploty při vysokých frekvencích brání výrobcům CPU zvýšit taktovací frekvenci nad určitou prahovou hodnotu.
Jak tedy nabízí procesor nové generace lepší výkon ve srovnání se staršími iteracemi? Výrobci CPU používají koncept paralelismu ke zvýšení výkonu. Tohoto paralelismu lze dosáhnout použitím vícejádrové architektury, kde se ke zlepšení výpočetního výkonu CPU používá několik různých procesorových jader.
Dalším způsobem, jak zlepšit výkon, je použití instrukční sady SIMD. Jednoduše řečeno, instrukce Single Instruction Multiple Data umožňuje ALU provést stejnou instrukci přes různé datové body. Tento typ paralelismu zlepšuje výkon CPU a AVX-512 je SIMD instrukce používaná ke zvýšení výkonu CPU při provádění specifických úloh.
Jak data dosahují ALU?
Nyní, když máme základní znalosti o tom, jak ALU funguje, musíme porozumět tomu, jak se data dostávají do ALU.
Aby se data dostala na ALU, musí se pohybovat různými úložnými systémy. Tato cesta dat je založena na hierarchii paměti výpočetního systému. Stručný přehled této hierarchie je uveden níže:
- Sekundární paměť: Sekundární paměť na výpočetním zařízení se skládá z trvalého paměťového zařízení. Toto zařízení může ukládat data trvale, ale není tak rychlé jako CPU. Kvůli tomu nemůže CPU přistupovat k datům přímo ze sekundárního úložného systému.
- Primární paměť: Primární úložný systém se skládá z paměti RAM (random access memory). Tento úložný systém je rychlejší než sekundární úložný systém, ale nemůže ukládat data trvale. Když tedy otevřete soubor v systému, přesune se z pevného disku do paměti RAM. To znamená, že ani RAM není dostatečně rychlá pro CPU.
- Mezipaměť: Mezipaměť je zabudována v CPU a je nejrychlejším paměťovým systémem v počítači. Tento paměťový systém je rozdělen do tří částí, a to na Mezipaměť L1, L2 a L3. Všechna data, která musí ALU zpracovat, se přesunou z pevného disku do RAM a poté do mezipaměti. To znamená, že ALU nemůže přistupovat k datům přímo z mezipaměti.
- CPU registry: Registr CPU na výpočetním zařízení má velmi malou velikost a na základě architektury počítače mohou tyto registry pojmout 32 nebo 64 bitů dat. Jakmile se data přesunou do těchto registrů, může k nim ALU přistupovat a provádět příslušný úkol.
Co je AVX-512 a jak funguje?
Instrukční sada AVX 512 je druhou iterací AVX a do procesorů Intel se dostala v roce 2013. Instrukční sada AVX, zkratka pro Advanced Vector Extensions, byla poprvé představena v Xeonu od Intelu Architektura Phi (Knights Landing) a později se dostala na serverové procesory Intel v Skylake-X CPU.
Instrukční sada AVX-512 se navíc dostala do spotřebitelských systémů s architekturou Cannon Lake a později byla podporována architekturami Ice Lake a Tiger Lake.
Hlavním cílem této instrukční sady bylo urychlit úlohy zahrnující kompresi dat, zpracování obrazu a kryptografické výpočty. Instrukční sada AVX-512 nabízí dvojnásobný výpočetní výkon ve srovnání se staršími iteracemi a nabízí podstatné zvýšení výkonu.
Jak tedy Intel zdvojnásobil výkon svých CPU pomocí architektury AVX-512?
Jak bylo vysvětleno dříve, ALU může přistupovat pouze k datům přítomným v registru CPU. Instrukční sada Advanced Vector Extensions zvětšuje velikost těchto registrů.
Díky tomuto nárůstu velikosti může ALU zpracovat více datových bodů v jedné instrukci, což zvyšuje výkon systému.
Pokud jde o velikost registrů, instrukční sada AVX-512 nabízí třicet dva 512bitových registrů, což je dvojnásobek v porovnání se starší instrukční sadou AVX.
Proč Intel končí s AVX-512?
Jak bylo vysvětleno dříve, instrukční sada AVX-512 nabízí několik výpočetních výhod. Ve skutečnosti oblíbené knihovny jako TensorFlow používají instrukční sadu k poskytování rychlejších výpočtů na CPU podporujících instrukční sadu.
Proč tedy Intel deaktivuje AVX-512 na svých nedávných procesorech Alder Lake?
Procesory Alder Lake jsou na rozdíl od těch starších, které vyrábí Intel. Zatímco starší systémy používaly jádra běžící na stejné architektuře, procesory Alder Lake používají dvě různá jádra. Tato jádra v CPU Alder lake jsou známá jako P a E-jádra a jsou poháněny různými architekturami.
Zatímco P-jádra využívají mikroarchitekturu Golden Cove, E-jádra využívají mikroarchitekturu Gracemont. Tento rozdíl v architektuře brání plánovači pracovat správně, když konkrétní instrukce mohou běžet na jedné architektuře, ale ne na druhé.
V případě procesorů Alder Lake je instrukční sada AVX-512 jedním z takových příkladů, protože P-jádra mají hardware pro zpracování instrukce, ale E-jádra ne.
Z tohoto důvodu CPU Alder Lake nepodporují instrukční sadu AVX-512.
To znamená, že instrukce AVX-512 mohou běžet na určitých CPU Alder Lake, kde je Intel fyzicky neodpojil. Aby uživatelé mohli udělat totéž, musí během BIOSu deaktivovat E-jádra.
Je AVX-512 potřeba pro spotřebitelské čipové sady?
Instrukční sada AVX-512 zvětšuje velikost registru CPU pro zvýšení jeho výkonu. Toto zvýšení výkonu umožňuje procesorům rychleji snižovat čísla, což uživatelům umožňuje spouštět algoritmy komprese videa/audia vyšší rychlostí.
To znamená, že toto zvýšení výkonu lze pozorovat pouze tehdy, když je instrukce definovaná v programu optimalizována pro běh na instrukční sadě AVX-512.
Z tohoto důvodu jsou architektury instrukční sady jako AVX-512 vhodnější pro serverové pracovní zátěže a čipové sady spotřebitelské úrovně mohou pracovat bez složitých instrukčních sad, jako je AVX-512.