當前位置: 華文星空 > 知識

有人說超威半導體(AMD)沒有512位元高級向量擴充套件指令集(AVX512),屬於殘廢,是真的嗎?

2020-07-13知識

這個問題得分套用環境考慮。

先來講講AVX512是個什麽東西:

近年來,Intel的tick-tock戰略已然失效,桌面消費級CPU從酷睿6000系的skylake到今年的10000系,實際上沒有變化過架構,主要是有兩個原因,第一個原因是Intel 10nm工藝的產能與頻率一直無法滿足要求,第二個原因是,主流架構的IPC改進確實已經進入了一個瓶頸。這個時候Intel需要一個能夠讓每代CPU有大的效能提升的亮點,AVX這一脈的SIMD指令集就是在這個背景下出現的。

簡單點理解的話,SIMD實際上的用途就是在不改變主要設計的同時,能夠讓CPU在執行能夠針對性最佳化的程式時,擁有極大程度的IPC提升,這個程度在最佳化真的非常極限的情況下,可能是接近2倍、接近4倍的巨幅提升。

對AVX512最佳化極好的圓周率計算測試y-cruncher,擁有AVX512的SKL-X有巨大的效率優勢。

這個提升是怎麽實作的?SIMD的含義是單指令多數據,實作方式就是一組數據能夠填滿SIMD的位寬,而AVX512的位寬是恐怖的512bit,這就等於說要填滿需要一組內16個32bit的單精度浮點數據或8個64bit的雙精度浮點數據才能填滿,而這個時候,一般的民用套用根本沒有這麽大的浮點數據運算需求量,雙精度的套用場景都極為有限,何談完整利用AVX512?

而AVX512有另一個缺點在於,功耗過高,初代基於14nm的SKLX在使用AVX512時,甚至需要降頻到2.8GHz甚至更低來保證功耗維持在可控範圍內。這是由於位寬的翻倍提升需要更多的晶體管,而且大量密集集中在芯片的一小塊區域,極小面積的大量發熱會導致散熱壓力明顯增大。

當然,AVX512也確實已經在不少領域有了相應的建樹:在大量使用高精度浮點數的密集運算中,記憶體才是運算的瓶頸,這個時候AVX512的效率確實比GPU會高不少。而VNNI也在AI領域有了相應的成果。

在和GPU競爭裏,CPU的對比除了記憶體延遲方面,還有人才方面。能寫AVX加速程式碼的人才和精通CUDA的人才……人才成本的優劣大家自己判斷吧。

就題目而言,一般的平民使用者是不用操心AVX512的,目前桌面民用級大家清一色已經都是滿血AVX2到頭,Intel想在ice lake上普及半吞吐AVX512,想知道效果如何還是需要套用基礎的。這裏吐槽一句,要是ICC能大規模普及的話,想必AVX這方面的最佳化覆蓋率會提升一個數量級吧……

總之,這個指令集還是和大多數人沒有交集的,想買AMD的平民使用者完全不用擔心這方面的問題。