Procesor vo vašom zariadení vykonáva milióny výpočtov každú sekundu a je zodpovedný za fungovanie vášho počítača. S CPU pracuje aritmetická procesorová jednotka (ALU), ktorá je zodpovedná za matematické úlohy a je riadená mikrokódom CPU.
Tento mikrokód CPU nie je statický a možno ho vylepšiť a jedným z takýchto vylepšení bola inštrukčná sada AVX-512 od Intelu. Intel je však pripravený zabiť AVX-512 a definitívne odstrániť jeho funkčnosť zo svojich CPU. Ale prečo? Prečo Intel zabíja AVX-512?
Ako funguje ALU?
Predtým, ako sa zoznámite s inštrukčnou sadou AVX-512, je nevyhnutné pochopiť, ako ALU funguje.
Ako už názov napovedá, jednotka aritmetického spracovania sa používa na vykonávanie matematických úloh. Tieto úlohy zahŕňajú operácie ako sčítanie, násobenie a výpočty s pohyblivou rádovou čiarkou. Na splnenie týchto úloh ALU používa digitálne obvody špecifické pre aplikáciu, ktoré sú riadené hodinovým signálom CPU.
Preto rýchlosť hodín CPU definuje rýchlosť, akou sú inštrukcie spracovávané v ALU. Ak teda váš procesor beží na frekvencii hodín 5 GHz, ALU dokáže spracovať 5 miliárd inštrukcií za jednu sekundu. Z tohto dôvodu sa výkon procesora zlepšuje so zvyšujúcou sa rýchlosťou hodín.
To znamená, že so zvyšujúcou sa rýchlosťou hodín CPU sa zvyšuje množstvo tepla generovaného CPU. Z tohto dôvodu nároční používatelia používajú pri pretaktovaní svojich systémov tekutý dusík. Bohužiaľ, toto zvýšenie teploty pri vysokých frekvenciách bráni výrobcom CPU zvýšiť taktovaciu frekvenciu nad určitú hranicu.
Ako teda procesor novej generácie ponúka lepší výkon v porovnaní so staršími iteráciami? Výrobcovia CPU používajú koncept paralelizmu na zvýšenie výkonu. Tento paralelizmus možno dosiahnuť použitím viacjadrovej architektúry, kde sa na zlepšenie výpočtového výkonu CPU používa niekoľko rôznych jadier spracovania.
Ďalším spôsobom, ako zlepšiť výkon, je použitie inštrukčnej sady SIMD. Jednoducho povedané, inštrukcia Single Instruction Multiple Data umožňuje ALU vykonať rovnakú inštrukciu v rôznych dátových bodoch. Tento typ paralelizmu zlepšuje výkon CPU a AVX-512 je inštrukcia SIMD používaná na zvýšenie výkonu CPU pri vykonávaní špecifických úloh.
Ako údaje dosahujú ALU?
Teraz, keď máme základné znalosti o tom, ako ALU funguje, musíme pochopiť, ako sa údaje dostanú k ALU.
Na dosiahnutie ALU musia údaje prechádzať rôznymi úložnými systémami. Táto dátová cesta je založená na hierarchii pamäte výpočtového systému. Stručný prehľad tejto hierarchie je uvedený nižšie:
- Sekundárna pamäť: Sekundárna pamäť na výpočtovom zariadení pozostáva z trvalého úložného zariadenia. Toto zariadenie dokáže ukladať dáta trvalo, ale nie je také rýchle ako CPU. Z tohto dôvodu CPU nemôže pristupovať k údajom priamo zo sekundárneho úložného systému.
- Primárna pamäť: Primárny úložný systém pozostáva z pamäte RAM (random access memory). Tento úložný systém je rýchlejší ako sekundárny úložný systém, ale nedokáže ukladať údaje natrvalo. Preto, keď otvoríte súbor vo vašom systéme, presunie sa z pevného disku do pamäte RAM. To znamená, že ani RAM nie je dostatočne rýchla pre CPU.
- Rýchla vyrovnávacia pamäť: Vyrovnávacia pamäť je zabudovaná v CPU a je najrýchlejším pamäťovým systémom v počítači. Tento pamäťový systém je rozdelený na tri časti, a to na Vyrovnávacia pamäť L1, L2 a L3. Všetky údaje, ktoré musí ALU spracovať, sa presunú z pevného disku do RAM a potom do vyrovnávacej pamäte. To znamená, že ALU nemôže pristupovať k údajom priamo z vyrovnávacej pamäte.
- Registre CPU: Register CPU na výpočtovom zariadení má veľmi malú veľkosť a na základe architektúry počítača môžu tieto registre obsahovať 32 alebo 64 bitov údajov. Akonáhle sa údaje presunú do týchto registrov, ALU k nim môže pristupovať a vykonávať danú úlohu.
Čo je AVX-512 a ako to funguje?
Inštrukčná sada AVX 512 je druhou iteráciou AVX a dostala sa na procesory Intel v roku 2013. Skratka pre Advanced Vector Extensions, inštrukčná sada AVX bola prvýkrát predstavená v Xeone od Intelu Architektúra Phi (Knights Landing) a neskôr sa dostala na serverové procesory Intel v Skylake-X CPU.
Okrem toho sa inštrukčná sada AVX-512 dostala do spotrebiteľských systémov s architektúrou Cannon Lake a neskôr bola podporovaná architektúrami Ice Lake a Tiger Lake.
Hlavným cieľom tejto inštrukčnej sady bolo urýchliť úlohy zahŕňajúce kompresiu dát, spracovanie obrazu a kryptografické výpočty. Inštrukčná sada AVX-512 ponúka dvojnásobný výpočtový výkon v porovnaní so staršími iteráciami a ponúka podstatné zvýšenie výkonu.
Ako teda Intel zdvojnásobil výkon svojich CPU pomocou architektúry AVX-512?
Ako už bolo vysvetlené vyššie, ALU môže pristupovať iba k údajom prítomným v registri CPU. Inštrukčná sada Advanced Vector Extensions zväčšuje veľkosť týchto registrov.
Vďaka tomuto zväčšeniu veľkosti môže ALU spracovať viacero dátových bodov v jednej inštrukcii, čím sa zvýši výkon systému.
Čo sa týka veľkosti registrov, inštrukčná sada AVX-512 ponúka tridsaťdva 512-bitových registrov, čo je dvojnásobok v porovnaní so staršou inštrukčnou sadou AVX.
Prečo Intel končí s AVX-512?
Ako bolo vysvetlené vyššie, inštrukčná sada AVX-512 ponúka niekoľko výpočtových výhod. V skutočnosti populárne knižnice ako TensorFlow používajú inštrukčnú sadu na poskytovanie rýchlejších výpočtov na CPU, ktoré podporujú inštrukčnú sadu.
Prečo teda Intel deaktivuje AVX-512 na svojich najnovších procesoroch Alder Lake?
Procesory Alder Lake sú na rozdiel od starších vyrobených spoločnosťou Intel. Zatiaľ čo staršie systémy používali jadrá bežiace na rovnakej architektúre, procesory Alder Lake používajú dve rôzne jadrá. Tieto jadrá v CPU Alder lake sú známe ako P a E-jadrá a sú poháňané rôznymi architektúrami.
Kým P-jadrá využívajú mikroarchitektúru Golden Cove, E-jadrá využívajú mikroarchitektúru Gracemont. Tento rozdiel v architektúrach bráni plánovaču pracovať správne, keď konkrétne inštrukcie môžu bežať na jednej architektúre, ale nie na druhej.
V prípade procesorov Alder Lake je jedným z takýchto príkladov inštrukčná sada AVX-512, pretože jadrá P majú hardvér na spracovanie inštrukcie, ale jadrá E nie.
Z tohto dôvodu CPU Alder Lake nepodporujú inštrukčnú sadu AVX-512.
Inštrukcia AVX-512 však môže bežať na určitých CPU Alder Lake, kde ich Intel fyzicky neodpojil. Ak chcete urobiť to isté, používatelia musia počas BIOSu vypnúť E-jadrá.
Je AVX-512 potrebný na spotrebiteľských čipových súpravách?
Inštrukčná sada AVX-512 zväčšuje veľkosť registra CPU na zvýšenie jeho výkonu. Toto zvýšenie výkonu umožňuje procesorom rýchlejšie stláčať čísla, čo používateľom umožňuje spúšťať algoritmy kompresie videa/audia pri vyšších rýchlostiach.
To znamená, že toto zvýšenie výkonu možno pozorovať iba vtedy, keď je inštrukcia definovaná v programe optimalizovaná na spustenie na inštrukčnej sade AVX-512.
Z tohto dôvodu sú architektúry inštrukčných sád ako AVX-512 vhodnejšie pre serverové pracovné zaťaženie a čipové sady spotrebiteľskej triedy môžu pracovať bez zložitých inštrukčných sád ako AVX-512.