„Next big thing“ v x86 procesorech za zda roky: Jádro Panther Cove má být premiéra AVX10 a APX
Před 3 hodinami
Intel už loni představil plány na dvě inovace platformy a instrukční sady x86, na které jsou založené prakticky všechny procesory pro PC (Intel, AMD, čínský Zhaoxin). Jednak to bylo rozšíření APX, které probourá omezení v počtu pracovních registrů a trochu zmírní náskok ARMu v této disciplíně, a dále AVX10, což je nástupce či možná spíš nová adaptace AVX-512. Dlouho nebylo jasné, kdy tyto noviny přijdou, ale teď už to konečně víme. Intel zatím nikde veřejně neoznámil, pro které generace procesorů je podpora APX a AVX10 plánovaná. Možná i proto, že zatím není jisté, zda třeba dotyčné procesory nepostihne nějaký odklad. A firma také asi nechce vzít vítr z plachet předchozím generacím, v kterých ještě tyto novinky nejsou. Neoficiální cíle ale už prosákly. Podle zmínek jednoho zaměstnance (nebo exzaměstnance) izraelské pobočky Intelu, který se zřejmě na CPU architekturách podílel (Stanislav Shwartsman), Intel plánuje tyto velké novinky začlenit do procesorové architektury označené Panther Cove. Jádro Panther Cove má být příštím velkým architektonickým skokem, významem podobným nyní vydanému Lion Cove. Je zajímavé, že Intel u něj po dlouhé době změní CPUID z „Family 6“, které měly procesory prakticky od Pentia Pro, na „Family 19“. To by možná mohlo mít za cíl odrážet, že toto jádro bude větším předělem proti minulosti právě skrze tyto nové technologie. Plánované přeorání platformy x86 APX spočívá v tom, že procesor dostane 32 obecných architektonických (tj. viditelných z pohledu programátora) registrů místo dosavadních 16. Více registrů by mělo znamenat potenciál pro lepší výkon a jde o jednu z věcí, v nichž mají výhodu procesory RISC a v současnosti zejména ARMv8 a ARMv9. Současně APX má přinést také podporu podmíněných (conditional) operací a tříoperandové kódování instrukcí, kdy výsledek nebude destruktivně přepisovat jeden ze vstupů. Procesory x86 dlouhodobě používají různé techniky k zmírnění omezení, které tyto změny řeší (reálně mají registrů mnohem více a používají jejich přejmenování, dále pak techniky jako store to load forwarding, MOV elimination), ale i tak by tyto změny mohly přinést o něco lepší výkon. Software ale bude muset být upraven nebo aspoň překompilován, aby APX dokázal využít. Více jsme k této technologii psali zde: Velké změny pro procesory x86. APX odstraňuje limity legacy instrukcí, přebírá i nápady ARMu AVX10 zase je nástupce SIMD instrukcí AVX2 a AVX-512, který má být jakýmsi řešením problému, který si Intel zadělal tím, že 512bitové instrukce AVX-512 podporuje od roku 2017 velmi fragmentovaně. Nejprve je poskytovaly jen serverové procesory, pak se s 10nm čipy Ice Lake dostaly i do notebooků (a v případě Rocket Lake i do desktopu), ale Intel vzápětí začal vyrábět hybridní procesory. V těch jádra E-Core bohužel AVX-512 neumí, a to znamenalo konec jeho pokusů AVX-512 přinést i do PC a notebooků (teď AVX-512 paradoxně nabízí procesory AMD s jádry Zen 4 a Zen 5). AVX10 to řeší takovým kompromisem, kdy z instrukcí AVX-512 bere jejich pokročilé funkce, ale fakticky zmenšuje šířku vektoru jen na 256 bitů jako u AVX2 (pořád ale lepší než 128 bitů, na kterých uvízl ARM, a to dokonce i u svého variabilního rozšíření SVE, jež teoreticky mělo umožnit větší šířky). AVX10 bude mít i 512bitovou verzi, která by byla funkčně ekvivalentní AVX-512, ale tu budou podporovat jenom serverové procesory, zatímco v desktopu a noteboocích budou mít procesory podporu AVX10–256, což budou moci poskytovat i jádra E-Core (byť třeba se 128bitovými jedntokami). Hrozí tím bohužel fragmentace, kdy vývojáři programů a her nebudou ochotni optimalizovat software pro 512bitové procesory a spokojí se jenom s „baseline“ AVX10–256. O tom, jak toto rozšíření má fungovat, jsme psali více zd