Aktualizované minimální požadavky na hardware

Minimální požadavky na hardware pro .NET 11 byly aktualizovány tak, aby vyžadovaly modernější instrukční sady v architekturách x86/x64 i Arm64. Kromě toho byly aktualizovány cíle kompilace ReadyToRun (R2R), aby využívaly novější hardwarové funkce.

Arm64

Pro Apple neexistuje žádná změna minimálního hardwaru ReadyToRun ani cíle. Čipy Apple M1 jsou přibližně ekvivalentní armv8.5-a a proto poskytují podporu alespoň pro instrukční sady AdvSimd NEON, CRC, DOTPROD, LSE, RCPC, RCPC2 a RDMA.

Pro Linux neexistuje žádná změna minimálního hardwaru. .NET nadále podporuje zařízení, jako je Raspberry Pi, která můžou poskytovat podporu pouze pro AdvSimd instrukční sadu. Cíl ReadyToRun byl aktualizován tak, aby zahrnoval LSE sadu instrukcí, což může mít za následek další náklady při spuštění aplikace.

Pro Windows se základní linie aktualizuje, aby vyžadovala LSE sadu instrukcí. To vyžaduje Windows 11 a všechny procesory Arm64 oficiálně podporované systémem Windows 10. Kromě toho je to v souladu s požadavky Arm SBSA (Server Base System Architecture). Cíl ReadyToRun byl aktualizován na armv8.2-a + RCPC (což poskytuje podporu alespoň pro AdvSimd, CRC, LSE, RCPC a RDMA), což pokrývá většinu oficiálně podporovaného hardwaru.

operační systém Předchozí minimální počet JIT/AOT Nové minimum JIT/AOT Předchozí cíl R2R Nový cíl R2R
Jablko Apple M1 (Beze změny) Apple M1 (Beze změny)
Operační systém Linux armv8.0-a (Beze změny) armv8.0-a armv8.0-a + LSE
Windows armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC

x86/x64

Pro všechny tři operační systémy (Apple, Linux a Windows) se základní úroveň aktualizuje z x86-64-v1 na x86-64-v2. Hardware tak nyní zaručuje nejen CMOV, CX8, SSE a SSE2, ale také CX16, POPCNT, SSE3, SSSE3, SSE4.1 a SSE4.2. Tuto záruku vyžaduje Windows 11 a všechny procesory x86/x64 oficiálně podporované ve Windows 10. Zahrnuje všechny čipy, které Intel/AMD oficiálně podporuje, přičemž poslední starší čipy přestaly být podporovány kolem roku 2013.

Cíl ReadyToRun byl aktualizován na x86-64-v3 pro Windows a Linux, zatímco pro Apple zůstává beze změny. Navíc zahrnuje AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT a MOVBE instrukční sady.

operační systém Předchozí minimální hodnota JIT/AOT Nové minimum JIT/AOT Předchozí cíl R2R Nový cíl R2R
Jablko x86-64-v1 x86-64-v2 x86-64-v2 (Beze změny)
Operační systém Linux x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3
Windows x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3

Verze byla představena

.NET 11 Preview 1

Předchozí chování

Ve výchozím nastavení se rozhraní .NET úspěšně spustilo a běželo na starším hardwaru. Jednotlivé aplikace mohou nastavit vyšší základní úrovně nebo explicitně použít hardwarové instrukce, které pro jejich scénář zvýšily základní úroveň.

Nové chování

Od verze .NET 11 se rozhraní .NET nespustí na starším hardwaru a může vytisknout zprávu podobnou následující. (V některých scénářích může být k dispozici popisnější zpráva se seznamem konkrétních hardwarových požadavků pro daný operační systém a architekturu.)

V aktuálním procesoru chybí jedna nebo více směrných sad instrukcí.

U ReadyToRun-schopných sestavení může u některého podporovaného hardwaru dojít k dalším režijním nákladům při spuštění, které neodpovídají očekávané podpoře typického zařízení.

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

.NET podporuje širokou škálu hardwaru, často nad rámec minimálních hardwarových požadavků zavedených základním operačním systémem (OS). .NET má také integrovanou podporu pro využívání hardwaru, na kterém aktivně běží ve scénářích JIT. Tato podpora ale výrazně zvyšuje složitost základu kódu, zejména pro mnohem starší hardware, který se pravděpodobně stále nepoužívá. Kromě toho definuje "nejnižší společný jmenovatel", že cíle AOT musí být výchozí, což může v některých scénářích specifických pro doménu vést ke snížení výkonu aplikací.

Aktualizace minimálního směrného plánu byla provedena, aby se snížila složitost údržby základu kódu a lépe odpovídala zdokumentovaným (a často vynuceným) hardwarovým požadavkům základního operačního systému.

Pokud používáte hardware, který už není podporovaný, zvažte aktualizaci. Takový hardware je oficiálně mimo podporu a nemusí se spouštět ve verzích operačního systému, které podporuje .NET.

Ovlivněná rozhraní API

Tato změna má vliv na všechna rozhraní .NET.

Viz také