2

所以我有这个全新的带有英特尔酷睿 I7 处理器的 mac book sysctl machdep.cpu.featurespro

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)

4

2 回答 2

2

I depends on the compiler flags you are using wether __AVX__ and __SSEx__ will be defined.

So if you are using g++ -march=corei7avx the macro will be defined. -march=native should also suffice, if gcc is able to detect you cpu correctly (it usually is).

于 2013-01-29T16:46:22.417 回答
0

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

于 2013-12-03T08:32:39.393 回答