Compartir vía


Requisitos mínimos de hardware actualizados

Los requisitos mínimos de hardware para .NET 11 se han actualizado para requerir conjuntos de instrucciones más modernos en arquitecturas x86/x64 y Arm64. Además, los destinos de compilación ReadyToRun (R2R) se han actualizado para aprovechar las ventajas de las funcionalidades de hardware más recientes.

Arm64

Para Apple, no hay ningún cambio en el hardware mínimo o el ReadyToRun destino. Los Apple M1 chips son aproximadamente equivalentes a armv8.5-a y, por lo tanto, proporcionan compatibilidad con al menos los AdvSimd conjuntos de instrucciones (NEON), CRC, DOTPROD, LSE, RCPC, RCPC2y RDMA .

Para Linux, no hay ningún cambio en el hardware mínimo. .NET sigue admitiendo dispositivos como Raspberry Pi que solo pueden proporcionar compatibilidad con el AdvSimd conjunto de instrucciones. El ReadyToRun objetivo se ha actualizado para incluir el LSE conjunto de instrucciones, lo que podría dar lugar a una sobrecarga de Jitting adicional al iniciar una aplicación.

Para Windows, la línea base se actualiza para requerir el LSE conjunto de instrucciones. Esto es necesario para Windows 11 y para todas las CPU de Arm64 compatibles oficialmente con Windows 10. Además, está alineado con los Arm SBSA requisitos (Arquitectura del sistema base del servidor). El ReadyToRun objetivo se ha actualizado para que sea armv8.2-a + RCPC (esto proporciona soporte para al menos AdvSimd, CRC, LSE, RCPC, y RDMA), que cubre la mayoría del hardware admitido oficialmente.

Sistema operativo JIT/AOT mínimo anterior Nuevo JIT/AOT mínimo Destino de R2R anterior Nuevo destino de R2R
Manzana Apple M1 (Sin cambios) Apple M1 (Sin cambios)
Linux armv8.0-a (Sin cambios) armv8.0-a armv8.0-a + LSE
Windows armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC

x86/x64

Para los tres sistemas operativos (Apple, Linux y Windows), la línea base se actualiza de x86-64-v1 a x86-64-v2. Esto cambia el hardware de solo garantizar CMOV, CX8, SSE y SSE2 a también garantizar CX16, POPCNT, SSE3, SSSE3, SSE4.1 y SSE4.2. Esta garantía es necesaria para Windows 11 y para todas las CPU x86/x64 compatibles oficialmente con Windows 10. Incluye todos los chips aún admitidos oficialmente por Intel/AMD, con los últimos chips más antiguos que han salido de soporte alrededor de 2013.

El ReadyToRun objetivo se ha actualizado a x86-64-v3 para Windows y Linux, mientras que permanece sin cambios para Apple, que además incluye los conjuntos de instrucciones AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT y MOVBE.

Sistema operativo JIT/AOT mínimo anterior Nuevo JIT/AOT mínimo Destino de R2R anterior Nuevo destino de R2R
Manzana x86-64-v1 x86-64-v2 x86-64-v2 (Sin cambios)
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

Versión introducida

.NET 11 Preview 1

Comportamiento anterior

De forma predeterminada, .NET se inició y ejecutó correctamente en hardware anterior. Es posible que las aplicaciones individuales hayan optado por tener líneas base superiores o hayan usado explícitamente intrínsecos de hardware que elevaron la línea base para su escenario.

Nuevo comportamiento

A partir de .NET 11, .NET no se puede ejecutar en hardware anterior y podría imprimir un mensaje similar al siguiente. (En algunos escenarios, puede proporcionarse un mensaje más descriptivo que muestre los requisitos de hardware concretos para un sistema operativo y una arquitectura determinados).

La CPU actual carece de uno o más de los conjuntos de instrucciones de línea base.

En el caso de ensamblados capaces de ReadyToRun, puede haber una sobrecarga de inicio adicional en algún hardware compatible que no cumpla con el soporte esperado para un dispositivo típico.

Tipo de cambio disruptivo

Este es un cambio de comportamiento.

Motivo del cambio

.NET admite una amplia gama de hardware, a menudo por encima y más allá de los requisitos mínimos de hardware establecidos por el sistema operativo (SO) subyacente. .NET también tiene compatibilidad integrada para aprovechar el hardware en el que se ejecuta activamente para escenarios JIT. Sin embargo, esta compatibilidad agrega una complejidad significativa al código base, especialmente para hardware mucho más antiguo que es poco probable que todavía esté en uso. Además, define un "denominador común más bajo" al que los destinos de AOT deben tener como valor predeterminado, lo que puede, en algunos escenarios específicos del dominio, dar lugar a una reducción del rendimiento de las aplicaciones.

La actualización a la línea base mínima se realizó para reducir la complejidad de mantenimiento del código base y para alinearse mejor con los requisitos de hardware documentados (y a menudo aplicados) del sistema operativo subyacente.

Si usa hardware que ya no se admite, considere la posibilidad de actualizar. Este hardware no es compatible oficialmente y es posible que no arranque en versiones del sistema operativo compatibles con .NET.

Las APIs afectadas

Este cambio afecta a todo .NET.

Consulte también