共用方式為


啟用 Intel AVX 的 Windows 7 支援

受影響的平臺

用戶端 - Windows 7 SP1
Server - Windows Server 2008 R2 SP1

功能影響

嚴重性 - 低
頻率 - 低

描述

Intel 進階向量延伸模組 (AVX) 是 Intel 架構的 256 位 SIMD 浮點向量延伸。 它包含指令和緩存器集的延伸模組。

Microsoft已開發一些 API 增強功能,例如 XState 函式,可讓應用程式存取及作延伸處理器功能資訊和狀態,包括 AVX。

使用案例

潛在影響有三個一般層級。

層級 1: 未直接使用 Intel AVX 的應用程式,即使它們呼叫連結庫或使用間接使用或產生 Intel AVX 延伸模組的編譯程式,也不會對其功能產生任何影響。 這表示大部分的應用程式。

層級 2: 明確使用 Intel AVX 指令集的進階應用程式,能夠在引發硬體例外狀況時存取和變更 AVX 快取器內容。 極少數的應用程式會落入此類別,因為它暗示了例外狀況時所執行的指令數據流的親密知識,例如使用元件語言撰寫的區段的應用程式,或是在運行時間產生機器程式代碼的應用程式(例如,具有 Just-In-Time 編譯的 Managed 程式代碼運行時間)。

層級 3: 調試程式應用程式將能夠存取及作正在偵錯之應用程式中的 AVX 狀態。

如何運用功能

層級 1: 應用程式不需要採取任何動作,才能使用 Intel AVX。

層級 2: 此類別中的應用程式可以選擇從例外狀況篩選條件中存取及作 AVX 狀態。 透過 GetExceptionInformation 取得基底處理器內容之後,篩選應該:

1. 檢查 CONTEXT_XSTATE 旗標的值。 此旗標表示內容中至少有一個 XState 功能存在。
2。 如果是這種情況,請呼叫 GetXStateFeaturesMask,並在傳回的遮罩中測試 XSTATE_AVX 旗標的值。 這表示內容中有AVX狀態。
3. 呼叫 LocateXStateFeature,以擷取儲存 AVX 狀態的實際位置。

層級 3: 除非想要存取 Intel AVX 快取器,否則不需要更新現有的調試程式應用程式:

1. 若要判斷是否啟用AVX,調試程式應該使用:

  • GetEnabledXStateFeatures 可取得 x86 或 x64 處理器上已啟用 XState 功能的遮罩,以判斷系統上有哪些功能存在並啟用,然後再使用 XState 處理器功能或嘗試作 XState 內容

2。 如果 AVX 存在,而且您想要從偵錯的應用程式擷取及作 AVX 狀態(例如 GetThreadContext 和 SetThreadContext),調試程式應該使用:

  • InitializeContext 函式,以必要的大小和對齊方式,初始化緩衝區內的內容結構
  • CopyContext 函式,將來源內容結構(包括任何 XState) 複製到初始化的目的地內容結構

3. 若要在處理器內容中測試、設定及尋找AVX狀態,調試程式應該使用:

  • 找出XStateFeature 以擷取內容結構內個別 XState 功能的處理器狀態指標
  • GetXStateFeaturesMask 可傳回內容結構中設定的 XState 功能遮罩
  • SetXStateFeaturesMask 可設定內容結構內設定 XState 功能的遮罩