AVX2指令集是Haswell處理器升級的一個重點,通過增加對256位元整數SIMD指令的支援、2個新FMA單元和一些位移指令,讓處理器的整數和浮點運算速度翻倍,提升了處理器的視頻處理、遊戲和專業計算能力。
Haswell到來的日子越來越近了,不僅測試成績出來了,就連正式版盒裝也已經到貨了。Haswell的亮點有很多,除了之前說到的C7節能狀態、GPU集顯和超頻空間外,還加入和TSX和AVX2指令集。不過由於TSX並不是每個Haswell處理器都支持,所以這裡暫且不提。下面我們來介紹一下AVX2指令集以及其實際作用。
AVX2指令集:AVX指令集的加強版
對於指令集和AVX指令集不瞭解的朋友可以先看看《AVX是什麼?AVX指令集技術與應用解析》。當年AVX在SSE4指令集的基礎上加入了256位向量寬度、增強的資料排序、3/4個運算元、不對齊記憶體存取以及VEX編碼方式,最直接的收益就是浮點性能最大提升了2倍。
AVX2的新內容
在2011年發佈的AVX2則在此基礎上加入了以下新內容:
-整數SIMD指令擴展至256位元
-2個新FMA(融合乘加,即±(a×b)±c)單元及浮點FMA指令
-離散資料載入指令“gather”、新的位移和廣播指令
理論性能:整數和浮點性能翻倍
其中最為重要的是對256位元的整數SIMD的支援,並新增60條256位元浮點SIMD指令,完善從AVX開始的256位擴展,理論上可再次提升整數和浮點運算速度。
新FMA單元和指令帶來更強的性能
FMA則關係到浮點運算能力。Haswell架構中擁有2個新的FMA單元(Intel的FMA3指令),每個FMA單元支援8個單精確度或4個雙精度浮點數,每週期單/雙精度FLOPs都要比AVX高1倍。
FMA擁有20種指令形式,與3種運算元次序組合,形成60種新指令,為選擇記憶體運算元或目的運算元提供了極大的靈活性。另外融合乘加還會自動選擇多項式的計算過程,降低了延遲。
AVX兩個128位通道獨立,AVX2實現互通
在AVX中,Intel定義了兩個128位通道,分別是高通道和低通道,不同通道不能互取資料;到AVX2中,跨通道資料排列操作則實現了高低通道資料互通,效率更高。
AVX2新指令
新的離散資料載入指令是一種訪問非連續記憶體的基本操作,可以載入8個雙位元組或者4個四位元組到一個目的寄存器中,提供了一種新的向量化途徑。
另外AVX2還加入了一些移位元指令和廣播指令,其中移位元指令包括任意到任意SIMD資料置換與向量移位元,使向量化更高效、可靠。
實際應用:加強視頻處理、遊戲和專業計算性能
理論可以說得很美好,但能不能投入到日常使用,能給性能帶來多大的提升,才是用戶最為關注的。
AVX2加強了音訊、視頻處理、遊戲以及專業計算性能
(1)目前大部分程式(包括作業系統以及遊戲)的代碼靠的主要是整數運算。AVX2指令集引入了對256位元整數向量指令的支援,讓Haswell處理器的整數運算比上代架構有了更大提升,軟體回應速度更快,運行更流暢。另外,較多使用整數運算的圖像、視頻處理也將受益。
(2)新的FMA單元加強了處理器浮點運算性能。對普通用戶來說,遊戲效果、3D動畫以及視頻播放是接觸浮點運算最多的應用領域;浮點運算還是通用計算的主力。AVX2指令集説明Haswell處理器提升浮點運算性能,也就是說,Haswell處理器將能比Sandy Bridge和Ivy Bridge展現出更強的3D性能和更快更准的通用計算能力。
需要獲得更多諮詢的朋友可點擊以下位址:Intel官網AVX開發者專區(中文版)
資料來源 |