Emulace x86 aplikací v ARM Windows už zvládá i FMA a AVX2

Nová verze Windows 11 s označením 24H2, která byla nedávno vydána, přinesla velké změny na platformě procesorů ARM – mimo AI funkcí pro tzv. Copilot+ PC to byla také zlepšení emulace Prism, která umožňuje na procesorech ARM přímo spouštět klasické windowsí programy pro procesory x86 od AMD a Intelu. Prism ale dostane další velkou aktualizaci, která by měla být důležitá pro ty, kdo chtějí na ARMu hrát náročné nové hry.

Microsoft tento měsíc oznámil další zlepšení, které se teď dá testovat v novém insider sestavení 27744 před tím, než se dostane do běžné distribuce. Je možné, že toto zlepšení mělo původně být už součástí aktualizace 24H2, ale nakonec nestihlo deadline.

AVX2 kód na ARMu

Tato nová verze emulace Prism přidává podporu dalších instrukcí virtuálnímu procesoru, který pro x86 aplikace poskytuje. Doteď byly podporovány instrukce jen po SSE4. Ty byly poprvé v procesorech Nehalem a částečně v předchozím Core 2 Penryn z let 2007 a 2008, ale obvykle by k běhu programů měly stačit, protože na platformě Windows panuje kultura kompatibility, kdy je software obvykle kompilován tak, aby fungoval na širokém spektru i starých počítačů. Obvykle je to tak, že optimalizace používající nové instrukce jsou zkompilovány s detekcí funkcí CPU, takže na novém procesoru se aktivují, ale pokud používáte starší CPU, použije se alternativní kód se staršími instrukcemi a aplikace normálně běží, byť s horším výkonem.

V některých případech ale program je zkompilovaný tak, že odporu nových instrukcí vyžaduje natvrdo a v takových případech emulování takové x86 aplikace v ARM Windows selhávalo. Nová verze Prismu už poskytuje procesor, který umí instrukce AVX i AVX2 a také některé další dosud neimplementované – FMA, F16|C, BMI, RDRAND, XSAVE, XSTOR, XSETBV/XGETBV.

Díky tomuto budou fungovat některé aplikace, které jsou na například AVX a/nebo AVX2 závislé, což budou asi zejména různé workstation aplikace typu CAD/CAM, ale vedle nich také hry. AVX2 vyžadují například některé tituly série Yakuza, Assissin’s Creed Odyssey nebo Death Stranding. Nejmodernější 512bitové instrukce AVX-512 v emulaci podporované stále nejsou, ale to by nemělo blokovat spuštění prakticky žádného softwaru. Programy používající tyto instrukce mají pravděpodobně vždy záložní kód pro procesor bez nich.

Podporované instrukce lze zobrazit třeba pomocí utility Coreinfo64. Toto reportuje virtuální procesor v nové verzi Prism podporující AVX2 (Autor: Microsoft)

Určité omezení je, že podpora těchto instrukčních rozšíření je implementována jenom pro programy, které běží v 64bitovém režimu, 32bitové x86 aplikace je nebudou vidět. Toto by v praxi nemělo vadit, protože program, který natvrdo vyžaduje AVX či AVX2, bude zpravidla 64bitový. Problém teoreticky může vzniknout, pokud třeba výbavu procesoru nedetekuje přímo samotný 64bitový program, ale separátní binárka nebo instalátor, které jsou 32bitové.

Příkladem softwaru, který díky této vylepšené emulaci bude běžet a dříve neběžel, je Adobe Premiere Pro 25, který zatím nemá verzi pro ARM Windows. Ovšem Microsoft právě pro tento program nasadil podporu AVX2 v jakési zkušební preview verzi již ve Windows 11 24H2, díky tomu program funguje již v tomto updatu. Pro ostatní software ale nová verze zpřístupněná doteď nebyla a do praxe ji uvolní až ono sestavení 27744. Proto jsme zmiňovali, že možná Microsoft zamýšlel dřívější vydání, z kterého nakonec zbylo jen specifické nasazení pro Premiere 25 Pro.

Surface Laptop a Surface Pro z řady Copilot+ PC s ARM procesory Qualcomm Snapdragon X Elite a X Plus (Autor: Microsoft)

Na ARMu asi AVX2 výkon zvyšovat nebude

Tato implementace nových instrukčních rozšíření má za cíl hlavně kompatibilitu, tedy schopnost spustit daný software. Neočekávejte od ní zlepšený výkon, protože pokud na x86 procesorech tyto instrukce zrychlují práci, je to díky tomu, že daná CPU mají širší 256bitové jednotky SIMD. Oproti 128bitovým instrukcím SSE až SSE4 na nich jedna instrukce udělá dvojnásobek výpočetní práce. Ovšem současné procesory ARM nemají 256bitové jednotky a v softwaru používajícím AVX nebo AVX2 budou tedy všechny výpočty stále překládané na dvě dílčí 128bitové operace, bez zvýšení výkonu.

AVX2 kvůli hrám implementuje i Apple

Schopnost emulovat novější instrukční rozšíření procesorů až po AVX2 ze začátku nemělo ani řešení (Rosetta 2), které používá pro kompatibilitu na ARM procesorech Apple ve svém operačním systému. Apple ji ale přidal letos, přičemž cílem je zřejmě zlepšit kompatibilitu s novými hrami (nebo usnadnit jejich portování), které už někdy mohou AVX2 vyžadovat.

Tip: Čistě „zelený“ počítač? ARM procesory od Nvidie vyjdou příští září

V případě Windows má zřejmě toto vylepšení emulace stejný cíl, tedy pokrýt některé hry, které AVX2 vyžadují natvrdo a bez těchto instrukcí se nespustí. Instrukce AVX2 poskytují prakticky všechny procesory staré méně než deset let s výjimkou Celeronů a Pentií s malými jádry, takže v případě her se je už někdy vývojáři rozhodují vyžadovat, jelikož hry jsou obecně náročné a na lowendové mobilní čipy na ně stejně nemají dost výkonu.

S touto změnou by se tedy měl zmenšit počet her pro Windows, nefungujících na procesorech ARM. Je ale třeba říct, že toto je jen jedna z možných příčin nekompatibility, častější asi budou problémy spojené s ovladači GPU a zejména pak to, že některé hry používají ochranu DRM, která má ovladač kompatibilní pouze s procesory x86. Emulovat ovladače překladové vrstvy Microsoftu ani Applu neumí, a takovou hru pak nelze spustit, byť by ji jinak procesor a GPU zvládaly, kdyby ochrana proti kopírování nebyla aktivní. S tímto problémem tato vylepšená verze překladače nepomůže.

Tip: Windows 11 pro ARM byly vydány na ostro, včetně instalačních ISO

Zdroj: Microsoft

Jan Olšan, redaktor Cnews.cz


⠀

Contents

Rhea2 & Mobius100: Detaily druhé generace Evropských procesorů

Máme tu aktualizaci k dění v projektu evropských procesorů. Nedávno jsme psali, že se značným zpožděním začaly dodávky první generace těchto serverových CPU, Rhea1. Teď máme bližší informace k následující generaci, kterou firma SiPearl, jež je výrobcem těchto CPU, nyní vyvíjí. Ta by mohla být výrazně lepší a konkurenceschopnější – pokud tedy tentokrát vyjde včas a nebude zase o několik let zpožděná. Celý článok „Rhea2 & Mobius100: Detaily druhé generace Evropských procesorů“ »

Procesory RTX Spark N1X od Nvidie jsou tu. Prodej začne za týden

Jak prosáklo předem, ve středu večer byly formálně uvedené na trh notebooky s čipem RTX Spark N1X – prvním Arm procesorem Nvidie pro PC, kterým se firma snaží proniknout na trh ovládaný AMD a Intelem (pokud nepočítáme někdejší eventuálně neúspěšné pokusy o tablety s Tegrou 3 a Windows RT v roce 2012). Modely s RTX Sparkem uvádí vícero výrobců a koupit je bude možno už brzo. Sice ne dnes, ale dostupnost začne od příštího týdne. Celý článok „Procesory RTX Spark N1X od Nvidie jsou tu. Prodej začne za týden“ »

Architekti z Nuvie teď chystají CPU, které umí Arm, RISC-V i x86

Začátkem roku prosáklo, že zakladatelé firmy Nuvia v čele s Gerrardem Williamsem III., kteří dříve navrhovali úspěšná procesorová jádra Applu, opustili Qualcomm, který jejich firmu o pět let dříve koupil a tím získal také velmi silná Arm jádra Oryon pohánějící jeho Snapdragony X, X2 a už i čipy pro mobily. Hned ale založili opět nový startup vyvíjející CPU: Nuvacore. Teď ale odhalili, že jeho strategie bude o hodně jiná než u Nuvie. Celý článok „Architekti z Nuvie teď chystají CPU, které umí Arm, RISC-V i x86“ »

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *