Remove ads

高級向量擴展指令集(英語:Advanced Vector Extensions,簡稱AVX)是x86架構微處理器中的指令集,由英特爾在2008年3月提出,並在2011年第一季度發布的Sandy Bridge系列處理器中首次支持[1]。AMD在隨後的2011年第三季度發布的Bulldozer系列處理器中開始支持AVX[2]。AVX指令集提供了新的特性、指令和編碼方案。

AVX是X86指令集的SSE延伸架構,如IA16至IA32般的把暫存器XMM 128bit提升至YMM 256bit,以增加一倍的運算效率。此架構支持了三運算指令(3-Operand Instructions),減少在編碼上需要先複製才能運算的動作。在微碼部分使用了LES LDS這兩少用的指令作為延伸指令Prefix。[查證請求]

AVX2指令集將大多數整數命令操作擴展到256位,並引入了熔合乘法累積(FMA)運算。AVX-512則使用新的EVEX前綴英語EVEX prefix編碼將AVX指令進一步擴展到512位。Intel Xeon Scalable處理器支援AVX-512。

支援

CPU對AVX指令集的支持情況

  • 英特爾
    • Sandy Bridge(2011年Q1)及更新的的處理器(除賽揚和奔騰)均支持[3]
    • Tiger Lake(2020年Q3)及更新的的奔騰和賽揚處理器均支持[4]
  • AMD:
    • 推土機微架構(2011年Q4)及更新的處理器均支持[5]

編譯器和匯編器對AVX指令集的支持情況

  • Absoft英語Absoft編譯器支持-mavx選項
  • Free Pascal編譯器從2.7.1版本開始為AVX和AVX2提供-CfAVX和-CfAVX2選項
  • Delphi從RAD studio v11.0 Alexandria版本開始支持AVX2和AVX512[8]
  • GNU匯編器GNU Binutils 2.19版本開始支持AVX[9]
  • 4.6版本的GCC和11.1版本的Intel編譯器套件開始支持AVX
  • Open64編譯器從4.5.1版本開始使用-mavx標誌支持AVX
  • PathScale編譯器支持-mavx選項
  • Vector Pascal英語Vector Pascal編譯器通過-cpuAVX32選項支持AVX
  • Visual Studio 2010/2012 編譯器通過內聯函數(intrinsic)和 /arch:AVX選項支持AVX
  • NASM從2.03版本開始支持 AVX,並在 2.04 版本中,進行了許多與 AVX 相關的錯誤修復和更新[10]

操作系統對AVX指令集的支持情況

AVX通過256 位寬的YMM寄存器添加了新的寄存器狀態,因此需要操作系統顯式支持,以在上下文切換時正確保存和恢復AVX的擴展寄存器。以下操作系統版本支持 AVX:

Remove ads

參見

參考資料

Remove ads

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.

Remove ads