Freigeben über


Mindesthardwareanforderungen aktualisiert

Die Mindesthardwareanforderungen für .NET 11 wurden aktualisiert, um modernere Anweisungssätze für x86/x64- und Arm64-Architekturen zu erfordern. Darüber hinaus wurden die ReadyToRun (R2R)-Kompilierungsziele aktualisiert, um neuere Hardwarefunktionen zu nutzen.

ARM64

Für Apple gibt es keine Änderung der Mindesthardware oder des Ziels ReadyToRun . Die Apple M1 Chips entsprechen ungefähr armv8.5-a und bieten somit Unterstützung für mindestens die AdvSimd (NEON), CRC, , DOTPROD, , LSE, RCPC, RCPC2und RDMA Anweisungssätze.

Für Linux gibt es keine Änderung an der Mindesthardware. .NET unterstützt weiterhin Geräte wie Raspberry Pi, die möglicherweise nur Unterstützung für den AdvSimd Anweisungssatz bieten. Das ReadyToRun Ziel wurde aktualisiert, um den LSE Anweisungssatz einzuschließen, was zu zusätzlichem Jitting-Aufwand führen kann, wenn Sie eine Anwendung starten.

Für Windows wird der Basisplan aktualisiert, um den LSE Anweisungssatz zu erfordern. Dies ist von Windows 11 und von allen Arm64-CPUs erforderlich, die offiziell von Windows 10 unterstützt werden. Darüber hinaus stimmt es mit den Arm SBSA Anforderungen (Server Base System Architecture) überein. Das ReadyToRun Ziel wurde aktualisiert, um zu sein armv8.2-a + RCPC (dies bietet Unterstützung für mindestens AdvSimd, , CRC, , LSE, RCPCund RDMA), die den Großteil der offiziell unterstützten Hardware abdeckt.

OS Vorheriges JIT/AOT-Minimum Neues JIT/AOT-Minimum Vorheriges R2R-Ziel Neues R2R-Ziel
Apfel Apple M1 (Keine Änderung) Apple M1 (Keine Änderung)
Linux armv8.0-a (Keine Änderung) armv8.0-a armv8.0-a + LSE
Fenster armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC

x86/x64

Für alle drei Betriebssysteme (Apple, Linux und Windows) wird die Basislinie von x86-64-v1 auf x86-64-v2 aktualisiert. Dies ändert die Hardware dahingehend, dass sie nicht nur CMOV, CX8, SSE und SSE2 garantiert, sondern auch CX16, POPCNT, SSE3, SSSE3, SSE4.1 und SSE4.2. Diese Garantie wird von Windows 11 und von allen offiziell unter Windows 10 unterstützten x86/x64-CPUs erfordert. Es enthält alle Chips, die noch offiziell von Intel/AMD unterstützt werden, wobei die letzten älteren Chips rund 2013 nicht mehr unterstützt wurden.

Das ReadyToRun Ziel wurde für Windows und Linux aktualisiert x86-64-v3, während es für Apple unverändert bleibt, was zusätzlich die Anweisungssets AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT und MOVBE enthält.

OS Vorheriges JIT/AOT-Minimum Neues JIT/AOT-Minimum Vorheriges R2R-Ziel Neues R2R-Ziel
Apfel x86-64-v1 x86-64-v2 x86-64-v2 (Keine Änderung)
Linux x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3
Fenster x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3

Eingeführt in Version

.NET 11 Preview 1

Vorheriges Verhalten

Standardmäßig wurde .NET erfolgreich gestartet und auf älterer Hardware ausgeführt. Einzelne Anwendungen haben möglicherweise höhere Baselines gewählt oder explizit Hardware-Intrinsics verwendet, die den Grundwert für ihr Szenario erhöht haben.

Neues Verhalten

Ab .NET 11 kann .NET nicht auf älterer Hardware ausgeführt werden, und möglicherweise wird eine Meldung wie folgt gedruckt. (In einigen Szenarien kann eine aussagekräftigere Meldung bereitgestellt werden, in der die konkreten Hardwareanforderungen für ein bestimmtes Betriebssystem und eine bestimmte Architektur aufgeführt sind.)

Der aktuellen CPU fehlt mindestens ein Grundbefehlssatz oder mehrere.

Bei ReadyToRun-fähigen Baugruppen kann es auf bestimmter unterstützter Hardware zusätzliche Startverzögerungen geben, die nicht den Erwartungen für ein typisches Gerät entsprechen.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

.NET unterstützt eine breite Palette von Hardware, häufig über die Mindesthardwareanforderungen hinaus, die vom zugrunde liegenden Betriebssystem (OS) vorgegeben werden. .NET verfügt auch über integrierte Unterstützung für die Nutzung der Hardware, auf der sie für JIT-Szenarien aktiv ausgeführt wird. Diese Unterstützung erhöht jedoch die Codebasis erheblich, insbesondere für viel ältere Hardware, die wahrscheinlich noch nicht verwendet wird. Darüber hinaus definiert er einen "niedrigsten gemeinsamen Nenner", für den AOT-Ziele standardmäßig festgelegt werden müssen, die in einigen domänenspezifischen Szenarien zu einer verringerten Leistung für Anwendungen führen können.

Das Update auf die Mindestbasis wurde vorgenommen, um die Wartungskomplexität der Codebasis zu verringern und die dokumentierten (und häufig erzwungenen) Hardwareanforderungen des zugrunde liegenden Betriebssystems besser anzupassen.

Wenn Sie Hardware verwenden, die nicht mehr unterstützt wird, sollten Sie die Aktualisierung in Betracht ziehen. Diese Hardware wird offiziell nicht unterstützt und kann möglicherweise nicht auf Betriebssystemversionen gestartet werden, die von .NET unterstützt werden.

Betroffene APIs

Diese Änderung wirkt sich auf alle .NET-Dateien aus.

Siehe auch