gcc不想在mac上使用AVX

时间:2013-01-29 15:22:03

标签: macos gcc osx-mountain-lion avx

所以我有这个全新的mac book pro,配有intel核心I7处理器和sysctl machdep.cpu.features给予

machdep.cpu.features:FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 xAPIC POPCNT AES PCID XSAVE OSXSAVE TSCTMR AVX1.0 RDRAND F16C

但是当我运行gcc(4.7.2 macports)时,它不会#define __AVX__。怎么了? (Mac OS X 10.8.2)

2 个答案:

答案 0 :(得分:2)

我依赖于你正在使用的编译器标志__AVX____SSEx__将被定义。

因此,如果您使用g++ -march=corei7avx,将定义宏。如果gcc能够正确检测到你的cpu(通常是),那么-march=native也应该足够了。

答案 1 :(得分:0)

在运行10.6.8的i7 MBP 13“(2010年中)上,当指定-mavx时,当前的MacPorts gcc 4.7.3和4.8.2确实定义了 AVX 。但是它们会崩溃编译代码使用boost :: simd(可通过www.metascale.org获得)。 Macports clang-3.3没有这样的问题,但编译时间较长(有或没有-mavx,与gcc> = 4.7 WITHOUT -mavx相比)。

相关问题