Intel 指令集扩展和用户机器(AVX、IMCI...)

Intel instruction set extension and user machine (AVX, IMCI...)

如果程序是在 Xeon-Phi 协处理器上编译的,并且包含来自 IMCI 指令集扩展的指令,是否可以在没有 Xeon-Phi 协处理器的用户机器上运行它?

如果可能的话,与没有编译 IMCI 指令的相同应用程序(例如在 i7 核心处理器上编译)相比,用户机器上的性能是否会有所提高?

换句话说,要在使用 Intel 指令集扩展时受益于更高的性能,用户计算机是否必须具有支持此扩展的处理器?

If a program is compiled on a Xeon-Phi coprocessor, and contains instructions from IMCI instruction set extension, is it possible to run it on a user machine with no Xeon-Phi coprocessor ?

如果您的程序使用 IMCI,您需要一个支持该指令的处理器(或协处理器,这是相对的)。
您使用的每条指令都是如此。

实际上我知道只有英特尔至强融核协处理器支持 IMCI,所以答案是

If it is possible, will the performance be improved on the user machine, compared to same application with no IMCI instructions compiled for instance on a i7 Core processor ?

In other words, to benefit from increased performance when using Intel instruction set extension, is it necessary that the user machine has a processor which is supporting this extension ?

我不确定你在这里问什么,你不能使用目标处理器不支持的指令集扩展,这是显而易见的,因为你不能和听不懂的人说俄语俄语。

如果您尝试使用不受支持的指令,处理器将引发一个 #UD 异常,指示无法识别的指令,程序状态无法前进,因为您无法跳过程序流中的指令并且应用程序将被强制停止。

Xeon Phi 的 KNL 微架构将支持 AVX512,“主流”CPU 也支持。

这个问题可能有用:Are there SIMD(SSE / AVX) instructions in the x86-compatible accelerators Intel Xeon Phi?

另请注意,您应该将 Xeon Phi(现在的样子)视为与 IA32e 架构兼容的协处理器,而不是 IA32e 系列的成员。