Compartir a través de


Habilitación de la compatibilidad de Windows 7 con Intel AVX

Plataformas afectadas

Clientes : Windows 7 SP1
Servidores : Windows Server 2008 R2 SP1

Impacto en las características

Gravedad : baja
Frecuencia : baja

Descripción

¿Intel? Advanced Vector Extensions (AVX)? es una extensión vectorial de punto flotante SIMD de 256 bits de la arquitectura Intel. Incluye extensiones para conjuntos de instrucciones y registros.

Microsoft ha desarrollado algunas mejoras de API, como las funciones XState, que permiten a las aplicaciones acceder a la información y el estado extendidos de las características del procesador, incluido AVX.

Escenarios de uso

Hay tres niveles generales de impacto potencial.

Nivel 1: Las aplicaciones que no usan Directamente Intel AVX no verán ningún impacto en su funcionalidad, incluso si llaman a bibliotecas o usan compiladores que usan indirectamente o generan extensiones intel AVX. Esto representa en gran medida la mayoría de las aplicaciones.

Nivel 2: Las aplicaciones avanzadas que usan explícitamente el conjunto de instrucciones de Intel AVX podrán acceder y cambiar el contenido del registro de AVX cuando se produzca una excepción de hardware. Un número muy pequeño de aplicaciones caería en esta categoría, ya que implica un conocimiento íntimo del flujo de instrucciones que se ejecuta en el momento de la excepción, como las aplicaciones con secciones escritas en lenguaje de ensamblado o aquellas que generan código de máquina en tiempo de ejecución (por ejemplo, entornos de ejecución de código administrado con compilación Just-In-Time).

Nivel 3: Las aplicaciones del depurador podrán acceder y manipular el estado de AVX en la aplicación que se está depurando.

Cómo aprovechar las funcionalidades de características

Nivel 1: No es necesario realizar ninguna acción para que las aplicaciones usen Intel AVX.

Nivel 2: Las aplicaciones de esta categoría tienen la opción de acceder y manipular el estado de AVX en el momento de la excepción desde dentro de sus filtros de excepciones. Después de obtener el contexto del procesador base a través de GetExceptionInformation, los filtros deben:

1. Compruebe el valor de la marca CONTEXT_XSTATE . Esta marca indica la presencia de al menos una característica XState en el contexto.
2. Si este es el caso, llame a GetXStateFeaturesMask y pruebe el valor de la marca XSTATE_AVX en la máscara devuelta. Esto indica la presencia del estado de AVX en el contexto.
3. Llame a LocateXStateFeature para recuperar la ubicación real donde se almacena el estado avx.

Nivel 3: No es necesario actualizar las aplicaciones del depurador existentes a menos que deseen acceder a los registros de Intel AVX:

1. Para determinar si AVX está habilitado, el depurador debe usar:

  • GetEnabledXStateFeatures para obtener una máscara de características XState habilitadas en procesadores x86 o x64 para determinar qué características están presentes y habilitadas en el sistema antes de usar una característica de procesador XState o intentar manipular contextos XState

2. Si AVX está presente y desea recuperar y manipular el estado avX de la aplicación que se está depurando (por ejemplo, GetThreadContext y SetThreadContext), el depurador debe usar:

  • InitializeContext (Función) para inicializar una estructura de contexto dentro de un búfer con el tamaño y la alineación necesarios
  • Función CopyContext para copiar una estructura de contexto de origen (incluido cualquier XState) en una estructura de contexto de destino inicializada

3. Para probar, establecer y localizar el estado avX dentro de un contexto de procesador, el depurador debe usar:

  • LocateXStateFeature para recuperar un puntero al estado del procesador de una característica XState individual dentro de una estructura de contexto
  • GetXStateFeaturesMask para devolver la máscara de las características XState establecidas dentro de una estructura de contexto
  • SetXStateFeaturesMask para establecer la máscara de las características XState establecidas dentro de una estructura de contexto