代码之家  ›  专栏  ›  技术社区  ›  Alex

对于几种CPU架构,我可以使用ICC进行编译吗?

  •  1
  • Alex  · 技术社区  · 11 年前

    使用ICC(“英特尔C++编译器”),我是否可以获得一个可执行文件,该文件包含来自不同制造商AMD/Intel的针对不同体系结构的多个版本的编译代码,这些体系结构具有不同的SSE1-4/AVX(但只有x86_64,没有x86_32),以及当前处理器体系结构所需的运行时自动选择功能?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Sergey L.    11 年前

    是的,你可以。

    正如您指定的那样 -xARCH (喜欢 -xAVX , -xHost )您可以指定 -axARCH 为两种体系结构进行编译

    例子:

    icc -xHost -axSSE2 ...
    

    将编译主机体系结构的默认可执行文件和SSE2的可选代码,以防在较旧的处理器上使用。遗憾的是,只能使用一种额外的体系结构。在运行时,将使用最高级的代码。

    在我的 icc 12.0.2 有效选项为:SSE2、SSE3、SSE4.1、SSE4.2、AVX、主机( -x主机 仅)

    现代AMD机器在所有现代CPU中都支持SSE3。SSE2是标准的最低公分母,如果不是,则为默认选项 -x 选项。你不能 icc 生成AMD 3DNow!密码