Abilitare il supporto di Windows 7 per Intel AVX
Piattaforme interessate
client - Windows 7 SP1
Server - Windows Server 2008 R2 SP1
Impatto sulle funzionalità
gravità - Bassa
frequenza - Bassa
Descrizione
Intel? advanced vector extensions (AVX)? è un'estensione a vettori a virgola mobile SIMD a 256 bit dell'architettura Intel. Include estensioni sia per i set di istruzioni che per i set di registri.
Microsoft ha sviluppato alcuni miglioramenti delle API, ad esempio le funzioni XState, che consentono alle applicazioni di accedere e modificare le informazioni e lo stato delle funzionalità del processore estese, tra cui AVX.
Scenari di utilizzo
Esistono tre livelli generali di potenziale impatto.
livello 1: applicazioni che non usano direttamente Intel AVX non avranno alcun impatto sulle funzionalità anche se chiamano librerie o usano compilatori che usano indirettamente o generano estensioni Intel AVX. Ciò rappresenta di gran lunga la maggior parte delle applicazioni.
livello 2: applicazioni avanzate che usano in modo esplicito il set di istruzioni Intel AVX sarà in grado di accedere e modificare il contenuto del registro AVX quando viene generata un'eccezione hardware. Un numero molto ridotto di applicazioni rientra in questa categoria, in quanto implica una conoscenza intima del flusso di istruzioni in esecuzione al momento dell'eccezione, ad esempio le applicazioni con sezioni scritte nel linguaggio assembly o quelle che generano codice del computer in fase di esecuzione (ad esempio, runtime di codice gestito con compilazione JUST-in-time).
livello 3: le applicazioni debugger potranno accedere e modificare lo stato AVX nell'applicazione sottoposta a debug.
Come sfruttare le funzionalità delle funzionalità
Livello 1: Non è necessaria alcuna azione per consentire alle applicazioni di usare Intel AVX.
livello 2: Applicazioni in questa categoria hanno la possibilità di accedere e modificare lo stato AVX al momento dell'eccezione dall'interno dei filtri delle eccezioni. Dopo aver ottenuto il contesto del processore di base tramite GetExceptionInformation, i filtri devono:
1. Controllare il valore del flag di CONTEXT_XSTATE. Questo flag indica la presenza di almeno una funzionalità XState nel contesto.
2. Se questo è il caso, chiamare GetXStateFeaturesMask e testare il valore del flag XSTATE_AVX nella maschera restituita. Indica la presenza di stato AVX nel contesto.
3. Chiamare LocateXStateFeature per recuperare la posizione effettiva in cui è archiviato lo stato AVX.
livello 3: Non è necessario aggiornare le applicazioni debugger esistenti a meno che non desiderino accedere ai registri Intel AVX:
1. Per determinare se AVX è abilitato, il debugger deve usare:
- GetEnabledXStateFeatures per ottenere una maschera delle funzionalità XState abilitate nei processori x86 o x64 per determinare quali funzionalità sono presenti e abilitate nel sistema prima di usare una funzionalità del processore XState o tentare di modificare i contesti XState
2. Se AVX è presente e si vuole recuperare e modificare lo stato AVX dall'applicazione sottoposta a debug(ad esempio, GetThreadContext e SetThreadContext), il debugger deve usare:
- Funzione InitializeContext per inizializzare una struttura di contesto all'interno di un buffer con le dimensioni e l'allineamento necessari
- Funzione CopyContext per copiare una struttura del contesto di origine (inclusa qualsiasi XState) in una struttura del contesto di destinazione inizializzata
3. Per testare, impostare e individuare lo stato AVX all'interno di un contesto del processore, il debugger deve usare:
- LocateXStateFeature per recuperare un puntatore allo stato del processore per una singola funzionalità XState all'interno di una struttura di contesto
- GetXStateFeaturesMask per restituire la maschera delle funzionalità XState impostate all'interno di una struttura di contesto
- SetXStateFeaturesMask per impostare la maschera delle funzionalità XState impostate all'interno di una struttura di contesto
Collegamenti ad altre risorse
- Per informazioni sulle funzioni XState in Windows SDK, vedere Funzioni di debug.
- Per una panoramica delle istruzioni e delle funzionalità di Intel AVX, vedere Intel AVX: New Frontiers in Performance Improvements and Energy Efficiency.