AVX-VNNI

AVX-VNNI是一種處理器指令集,由英特爾在2021年為Alder Lake CPU引入,其中VNNI代表矢量神經網路指令,主要用於加速人工智慧、機器學習和深度學習算法的應用程式。

英特爾後續引入了AVX-VNNI-INT8和AVX-VNNI-INT16等擴展指令集,以支持更多數據類型組合,並計畫在Arrow Lake、Lunar Lake等處理器中支持AVX-VNNI-INT16。AMD的Zen 5架構也將支持AVX-VNNI指令集。

基本介紹

  • 外文名:AVX-VNNI
  • 產品類型:處理器指令集
  • 上市時間:2021年
技術原理與特點,發展歷程,支持該指令集的處理器,編譯器與軟體支持,與AVX512-VNNI的關係與區別,

技術原理與特點

AVX-VNNI(Vector Neural Network Instructions)是一種處理器指令集,屬於英特爾高級矢量擴展(Intel AVX)的一部分。它由英特爾引入,專門用於加速卷積神經網路(CNN)、深度學習及人工智慧(AI)推理工作負載。
其設計初衷之一是為了在桌面和移動端處理器上提供高效的AI加速,以應對AVX512指令集功耗和面積較大、未在消費級平台普及的情況。因此,AVX-VNNI僅支持256位向量寬度,而非AVX512-VNNI的512位。
該指令集最初主要為8位(INT8)和16位(INT16)整數運算提供專用算法。後續英特爾擴展出AVX-VNNI-INT8和AVX-VNNI-INT16等子集,以支持更豐富的整數數據類型組合(如u8u8, s8s8, u16s16等)。
在英特爾引入大小核設計的處理器(如第12代酷睿及之後)中,其能效核(如Gracemont架構)也開始支持AVX-VNNI。但其INT8運算吞吐量並非單精度乘加指令的4倍,而是2倍。

發展歷程

AVX-VNNI指令集由英特爾首次引入,於2021年隨第12代酷睿處理器(Alder Lake)架構推出。英特爾在後續產品中擴展了該指令集的功能,例如增加了對AVX-VNNI-INT16等的支持,並引入了AVX-VNNI-INT8和AVX-VNNI-INT16等新指令集變體。Arrow Lake和Lunar Lake處理器系列支持AVX-VNNI指令集。
AMD公司從Zen 5架構開始支持AVX-VNNI指令集。根據2026年的訊息,AMD的下一代Zen 6架構(如Medusa Point APU)將支持FP16‘AVX-VNNI’指令集,提供半精度浮點AI加速能力。

支持該指令集的處理器

AVX-VNNI指令集在英特爾和AMD的現代處理器中均獲得了支持。
在英特爾方面,AVX-VNNI自第12代酷睿處理器開始引入,其能效核架構亦支持該指令集。後續的Arrow Lake-S(桌面平台)支持AVX-VNNI,部分型號支持AVX-VNNI-INT16擴展。Lunar Lake(移動平台)支持AVX-VNNI指令集。Clearwater Forest(伺服器平台)支持AVX-VNNI-INT16擴展。同一代處理器不同產品線對AVX-VNNI子集的支持可能存在差異,例如移動版Arrow Lake精簡了AVX-VNNI-INT16擴展。
在AMD方面,其處理器自Zen 5架構開始支持AVX-VNNI指令集。後續的Zen 6架構也將支持該指令集,並可能包含FP16 'AVX-VNNI'擴展。
該指令集已成為現代CPU強化AI性能的重要特性。

編譯器與軟體支持

主流編譯器如GNU編譯器集合(GCC)提供了對AVX-VNNI指令集的支持。
GCC 13版本引入了對AVX-VNNI-INT8指令集的支持。該版本為此開發了自動向量化增強功能,以生成向量神經網路指令,特別是用於AVX-VNNI-INT8 vpdpbssd。AVX-VNNI-INT8 intrinsics可通過-mavxvnniint8編譯器選項啟用。此外,GCC通過-march=sierraforest支持代號為Sierra Forest的Intel CPU,該開關啟用AVX-VNNI-INT8等ISA擴展。GCC也通過-march=grandridge支持代號為Grand Ridge的Intel CPU,該開關同樣啟用AVX-VNNI-INT8等ISA擴展。自動向量化增強還能執行習慣用法識別,如點積習慣用法,以觸發Intel AVX-VNNI-INT8的指令生成。
GCC 14版本則增強了對AVX-VNNI-INT16等新指令集的支持。該版本為AVX-VNNI-INT16開發了自動向量化增強功能。GCC通過-march=clearwaterforest支持代號為Clearwater Forest的Intel CPU,該開關啟用AVX-VNNI-INT16等ISA擴展。GCC也通過-march=arrowlake-s支持代號為Arrow Lake S的Intel CPU,該開關進一步啟用AVX-VNNI-INT16等ISA擴展。自動向量化增強還執行習慣用法識別,例如點積習慣用法,從而觸發AVX-VNNI-INT16的指令生成。
編譯器的這些支持使開發者能夠利用AVX-VNNI指令集來加速AI相關代碼的執行。

與AVX512-VNNI的關係與區別

AVX-VNNI與AVX512-VNNI在功能上可以執行相同的神經網路加速操作。兩者核心差異在於向量暫存器寬度,AVX-VNNI僅支持256位向量,而AVX512-VNNI支持512位向量,後者理論峰值性能更高。同時,兩者功能相同的256位指令使用不同的編碼方式,AVX-VNNI指令使用VEX前綴。
在套用場景與市場定位上,AVX512-VNNI因功耗和面積問題主要套用於伺服器/雲端,而AVX-VNNI則面向對能效更敏感的桌面和移動平台。為了在消費級平台提供AI硬體加速,兩者並存。

相關詞條

熱門詞條

聯絡我們