RJV*_*JVB 3 cross-platform cmake intrinsics compiler-optimization
我想知道除了 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),但当必须考虑更多平台和编译器时,该逻辑可能会变得非常复杂。简化它们可能会导致编译器开始在受运行时检查保护的预期位置之外使用不受支持的指令集。
目前,Microsoft Visual C++ 编译器不提供与March=native等效的标志。在构建代码之前,您必须手动或使用脚本找出适当的标志。
对于英特尔 C++ 编译器,xHost 和 QxHost标志的用途基本相同。
| 归档时间: |
|
| 查看次数: |
4354 次 |
| 最近记录: |