MSVC 2017 是否支持自动 CPU 调度



我在一些网站上读到,当使用SSE2架构并检测AVX支持运行时时,MSVC实际上可以发出AVX指令。是真的吗?

我测试了肯定会从AVX/AVX2支持中受益的各种循环,但是在调试器中运行时,我找不到任何AVX指令。

当使用/arch:AVX 时,它会发出 AVX 指令,但它当然会在不支持它的 CPU 上崩溃(经过测试(,因此也没有运行时检测。不过,我可以使用AVX内联函数,并且可以成功地从中创建AVX指令。有什么想法吗?

我已经联系了VC++团队,答案是"否"。问题下注释中链接的错误报告仅显示正常错误,而不是自动调度代码生成器中的错误。

所以如果指定了/arch:SSE2(默认情况下(,VC++ 只能自动调度到 SSE4。这是当前支持的唯一自动调度形式。换句话说,VC++ 无法自动调度到 AVX/AVX2。

最新更新