2014-03-26 59 views
7

x86兼容加速器MIC Intel Xeon Phi中是否存在SIMD(SSE/AVX)指令?x86兼容的加速器Intel Xeon Phi中是否存在SIMD(SSE/AVX)指令?

http://en.wikipedia.org/wiki/Xeon_Phi

+2

兼容與至強融核的版本?早期的有問題,未來的聲稱甚至支持AVX-512 – Leeor

+2

我不相信目前的Xeon Phi能夠運行SSE/AVX(2)。即使它的AVX-512與Skylake和未來的Xeon Phi芯片有所不同。 – Mysticial

+0

@Mysticial I.e.目前的Xeon Phi只能運行AVX-512,而不能運行SSE/AVX2,不是嗎? – Alex

回答

13

是的,當前這一代英特爾至強融核協處理器(代號「騎士角」,簡稱KNC)支持所謂的512位SIMD指令集「英特爾初始的Many Core指令」(簡稱英特爾®IMCI)。

Intel IMCI 不是「兼容」,並不等於SSE,AVX,AVX2或AVX-512 ISA。 然而,它正式宣佈下一代計劃Xeon Phi(代號爲「Knight's Landing」,縮寫爲KNLwill support AVX-512 ISA

Intel IMCI(由KNC支持)和AVX-512(由KNL支持)都是512位SIMD指令集,支持FMA並允許打包8個雙精度或16個單精度浮點數,或者16個32位整數(比AVX或AVX2多兩倍)。

雖然KNC不能「跑」 SSE或AVX二進制文件,它往往並不重要,因爲爲了產生你的應用程序二進制文件,以便能夠在運行KNC - 你需要重新編譯使用英特爾代碼C/C++/Fortran編譯器,已知可自動或半自動生成相對有效的向量代碼(對於SSE,AVX,IMCI等),並且還使您能夠在需要時使用IMCI內在函數。注意:對於Knights Landing(支持AVX-512),英特爾工具鏈不再是唯一的選擇,但它可能會繼續提供許多優勢,包括明確的自動矢量以及良好的等級與英特爾分析工具集成(例如,請注意中的AVX-512 analysis)。

AVX-512 ISA 與SSE,AVX和AVX2兼容。因此編譯AVX至強的應用程序將在KNL運行,而應用程序編譯AVX-512至強融核KNL通常會在未來幾代至強的運行(以支持在未來的AVX-512)。

AVX,兒童疾病綜合管理和未來的AVX-512指令集之間的差異可以很容易地使用下面的在線指南探討:http://software.intel.com/sites/landingpage/IntrinsicsGuide/

+0

謝謝! 「因爲爲了生成可以在KNC上運行的應用程序二進制文件,您需要使用英特爾C/C++/Fortran編譯器重新編譯代碼,這種編譯器已知可以自動或半自動生成相對有效的向量代碼(對於SSE, AVX,IMCI等)「 - 是的,但如果我不使用內置或內聯彙編SSE/AVX [1/2]指令,並且僅使用自動矢量化。 – Alex

+1

是的,如果你只使用內聯彙編,那麼你必須在每次更寬/更新的ISA出現時更新你的彙編實現,並且你的代碼並不總是可移植的。這就是爲什麼爲x86 CPU以及所有Xeon Phi提供更高級別,更便攜的SIMD抽象的原因之一。它們是:1)內在函數; 2)vec類和各種SIMD庫; 3)「顯式矢量化」意味着OpenMP4.0和Cilk Plus標準; 4)編譯器自動矢量化 – zam

+0

是的,可能是英特爾TBB同時使用SIMD和多線程,不是嗎?我喜歡OpenMP4中的SIMD,因爲它既是跨平臺的,也是跨硬件的。 – Alex