c++ 使MSVC针对特定微拱进行优化

kcugc4gi  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(118)

使用GCC/Clang/ICC/etc

  • -march=skylake等,以生成针对特定微架构优化的代码,以及
  • -march=native生成针对本地机器优化的代码。

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

hpcdzsge

hpcdzsge1#

微软的编译器将其分为两个独立的区域。一个是生成特定于特定指令集的代码,这在不支持该指令集的CPU上无法工作。这福尔斯其-arch:标志。x64编译器在这里只支持两种变体:AVX和AVX2(或无标志,支持最高达SSE 2)。x86版本的编译器为旧的指令集扩展(例如SSE)添加了几个标志,但我怀疑你是否还关心这些。
另一类是生成可以在许多架构中的任何一个上工作的代码,但是更倾向于一个架构。这由-favor交换机支持,它支持ATOM,AMD 64,INTEL64和“混合”(基本上意味着不要以牺牲其他架构为代价来支持一个架构)。
它没有任何(记录在案的)标志,如有利于Skylake与(说)Haswell或Broadwell虽然。

相关问题