Partager via


Activer la prise en charge de Windows 7 pour Intel AVX

Plateformes affectées

Clients - Windows 7 SP1
Serveurs - Windows Server 2008 R2 SP1

Impact sur les fonctionnalités

Gravité - Faible
Fréquence - Faible

Description

Intel ? Advanced Vector Extensions (AVX) ? est une extension de vecteur à virgule flottante SIMD 256 bits de l’architecture Intel. Il inclut des extensions pour les jeux d’instructions et d’inscriptions.

Microsoft a développé certaines améliorations de l’API, telles que les fonctions XState, qui permettent aux applications d’accéder et de manipuler les informations et l’état des fonctionnalités du processeur étendus, y compris AVX.

Scénarios d’utilisation

Il existe trois niveaux généraux d’impact potentiel.

Niveau 1 : Les applications qui n’utilisent pas directement Intel AVX ne verront aucun impact sur leurs fonctionnalités, même si elles appellent des bibliothèques ou utilisent des compilateurs qui utilisent ou génèrent indirectement des extensions Intel AVX. Cela représente de loin la majorité des applications.

Niveau 2 : Les applications avancées qui utilisent explicitement le jeu d’instructions Intel AVX peuvent accéder et modifier le contenu du registre AVX lorsqu’une exception matérielle est levée. Un très petit nombre d’applications entrerait dans cette catégorie, car cela implique une connaissance approfondie du flux d’instructions qui s’exécute au moment de l’exception, comme les applications avec des sections écrites en langage d’assembly ou celles qui génèrent du code machine au moment de l’exécution (par exemple, les runtimes de code managé avec compilation juste-à-temps).

Niveau 3 : Les applications de débogueur pourront accéder à l’état AVX et les manipuler dans l’application déboguée.

Comment tirer parti des fonctionnalités

Niveau 1 : Aucune action n’est nécessaire pour que les applications utilisent Intel AVX.

Niveau 2 : Les applications de cette catégorie ont la possibilité d’accéder et de manipuler l’état AVX au moment de l’exception à partir de leurs filtres d’exception. Après avoir obtenu le contexte du processeur de base via GetExceptionInformation, les filtres doivent :

1. Vérifiez la valeur de l’indicateur CONTEXT_XSTATE . Cet indicateur indique la présence d’au moins une fonctionnalité XState dans le contexte.
2. Si c’est le cas, appelez GetXStateFeaturesMask et testez la valeur de l’indicateur XSTATE_AVX dans le masque retourné. Cela indique la présence de l’état AVX dans le contexte.
3. Appelez LocateXStateFeature pour récupérer l’emplacement réel où l’état AVX est stocké.

Niveau 3 : Il n’est pas nécessaire de mettre à jour les applications de débogueur existantes, sauf si elles souhaitent accéder aux registres Intel AVX :

1. Pour déterminer si AVX est activé, le débogueur doit utiliser :

  • GetEnabledXStateFeatures pour obtenir un masque des fonctionnalités XState activées sur les processeurs x86 ou x64 afin de déterminer quelles fonctionnalités sont présentes et activées sur le système avant d’utiliser une fonctionnalité de processeur XState ou de tenter de manipuler des contextes XState

2. Si AVX est présent et que vous souhaitez récupérer et manipuler l’état AVX de l’application déboguée (par exemple, GetThreadContext et SetThreadContext), le débogueur doit utiliser :

  • Fonction InitializeContext pour initialiser une structure de contexte à l’intérieur d’une mémoire tampon avec la taille et l’alignement nécessaires
  • Fonction CopyContext pour copier une structure de contexte source (y compris tout XState) sur une structure de contexte de destination initialisée

3. Pour tester, définir et localiser l’état AVX dans un contexte de processeur, le débogueur doit utiliser :

  • LocalXStateFeature pour récupérer un pointeur vers l’état du processeur pour une fonctionnalité XState individuelle au sein d’une structure de contexte
  • GetXStateFeaturesMask pour retourner le masque des fonctionnalités XState définies dans une structure de contexte
  • SetXStateFeaturesMask pour définir le masque des fonctionnalités XState définies dans une structure de contexte