miércoles, 17 de diciembre de 2014

Cómo verificar el soporte de Intel AVX2 en Mac OS X

Para verificar si tu CPU (microprocesador) Intel soportaba el conjunto de instrucciones Intel AVX1 (Intel Advanced Vector eXtensions - Extensiones vectoriales avanzadas de Intel), también conocidas como AVX1.0, podías ejecutar el siguiente comando en una ventana Terminal:


sysctl -a | grep machdep.cpu.features

Sin embargo, si ejecutas el comando en una MacBook Pro con Mac OS X Yosemite Version 10.10.1, con un CPU Intel Core i5-4278U, notarás que solamente figura AVX1.0 en la lista de características (features list):

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 EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C



Puedes verificar las especificaciones oficiales para una CPU Intel Core i5-4278U aquí y notarás que la CPU provee AVX2 (indicado como AVX 2.0 y también conocido como Haswell New Instructions - Nuevas instrucciones Haswell).

Es por ello que debes ejecutar el siguiente comando en una ventana Terminal para verificar si AVX2 aparece en la lista de características:

sysctl -a | grep machdep.cpu.leaf7_features

La siguiente línea muestra los resultados de ejecutar el comando en la configuración de hardware y software explicada anteriormente:

machdep.cpu.leaf7_features: SMEP ERMS RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 BMI2 INVPCID



Como puedes verificar, los resultados incluyen AVX2, por lo tanto, la configuración incluye soporte para Intel AVX2 y puedes utilizar las opciones del compilador necesarias para generar código que saque ventaja de este poderoso juego de instrucciones adicionales.