小编RJV*_*JVB的帖子

相当于其他编译器中gcc/clang的march=native?

我想知道除了 gcc 和 clang 之外是否还有其他编译器提供类似-march=native选项的东西,如果有,该选项是什么。我已经从另一个问题(Automatically Building for best available platform in Visual C++ (equivalent to gcc's -march=native))了解到,微软的编译器没有这个选项(除非它在激活SSE2指令集的选项中隐含,最多并且至少不包括 AVX 及更高版本)。

用例很简单:提供 cmake 设置,因此用户可以选择激活和构建,并支持他或她的 CPU 支持的所有“内在函数”。我们目前拥有针对我们目标的实际内在函数的检测逻辑(例如 x86 上的 SSE4.2 和/或 PCLMUL),但当必须考虑更多平台和编译器时,该逻辑可能会变得非常复杂。简化它们可能会导致编译器开始在受运行时检查保护的预期位置之外使用不受支持的指令集。

cross-platform cmake intrinsics compiler-optimization

3
推荐指数
1
解决办法
4354
查看次数