Visual c++ 使MSVC针对特定微通道进行优化

Visual c++ 使MSVC针对特定微通道进行优化,visual-c++,Visual C++,我可以使用GCC/Clang/ICC/etc -march=skylake等生成针对特定微体系结构优化的代码,以及 -march=native生成针对本地计算机优化的代码 如何使用MSVC实现这些功能?微软的编译器将其分为两个独立的区域。一种是生成特定于特定指令集的代码,该指令集在不支持该指令集的CPU上无法工作。这属于它的-arch:标志。x64编译器在这里只支持两种变体:AVX和AVX2(或者不支持标志,如果内存可用,这基本上意味着SSE 4.2a)。x86版本的编译器为较旧的指令集扩展

我可以使用GCC/Clang/ICC/etc

  • -march=skylake
    等生成针对特定微体系结构优化的代码,以及

  • -march=native
    生成针对本地计算机优化的代码


如何使用MSVC实现这些功能?

微软的编译器将其分为两个独立的区域。一种是生成特定于特定指令集的代码,该指令集在不支持该指令集的CPU上无法工作。这属于它的
-arch:
标志。x64编译器在这里只支持两种变体:AVX和AVX2(或者不支持标志,如果内存可用,这基本上意味着SSE 4.2a)。x86版本的编译器为较旧的指令集扩展(例如,SSE)添加了更多标志,但我怀疑您是否还关心这个问题

另一类是生成代码,这些代码可以在许多体系结构中的任何一种上工作,但它们之间有优势。这是由
-fovor
开关支持的,该开关支持ATOM、AMD64、INTEL64和“blend”(这基本上意味着不要以牺牲他人为代价而偏向其中一个)的目标


它没有任何(记录在案的)标志,比如支持Skylake vs.(比如)Haswell或Broadwell。

据我所知,你没有。