2014-03-26 99 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