¿Cómo identifico qué CPU usa una MacBook?

28

Me gustaría identificar qué CPU está usando esta computadora portátil, en términos de nombres de código como "Ivy Bridge" y "Haswell". El pequeño logotipo de Apple en la esquina superior izquierda muestra información, pero no esta.

DarenW
fuente
2
Bueno, hasta ahora ninguna de las respuestas me dice con certeza cuál es mi procesador, aparte de un número de código. Incluso buscar el procesador en Intel no le da a la 'familia'. Solo Mactracker y Everymac tienen una suposición, y entre ellos podría ser cualquiera de 5 ... o no, porque mi CPU real nunca se vendió en una nueva Mac - Intel (R) Xeon® CPU X5690 @ 3.47GHz
Tetsujin
2
@Tetsujin: google x5690 wikipedia y verás que es una CPU de microarquitectura Westmere . (Muere el encogimiento de Nehalem con un rendimiento idéntico, pero agregó las nuevas instrucciones de AES y multiplicación sin carga para crypto).
Peter Cordes
2
@PeterCordes, seguro. Yo sé en realidad se trata de una máquina de Westmere, pero mi punto principal es que ninguna de las respuestas hasta el momento me decía que sin un poco de Google-Fu de la mía, así que no realmente responder a la pregunta de la OP, per se.
Tetsujin
1
@Tetsujin: buen punto; Este es uno de esos casos donde las personas que conocen la respuesta olvidan que no es obvio para las personas que no lo saben. Agregué una respuesta que cubre el paso 2.
Peter Cordes
Y una excelente respuesta es también.
Tetsujin

Respuestas:

39

En primer lugar, no obtendrá el nombre de microarquitectura del procesador (Broadwell, Sandy Lake, Ivy Bridge, etc.) porque no es un esquema de marca prominente para los procesadores Intel. En contraste con Apple, el departamento de marketing elige comercializar activamente los nombres en clave de sus sistemas operativos (Mavericks, Yosemite, El Capitan). Es una convención de marketing, no técnica.

Para obtener una lista de todos los procesadores Intel y sus nombres de código, arquitecturas y especificaciones, la Lista de microprocesadores Intel de Wikipedia tiene una buena página.

Entonces, para responder a esta pregunta, voy a proporcionar tres métodos para averiguar qué CPU tiene, los dos primeros, que deberían ser buenos para la mayoría de los usuarios, y un tercer método en el que puede determinar el número de microarquitectura para que pueda ver en el sitio de soporte de Intel. Puede "saltar" a la sección que le corresponde.

  1. Acerca de esta Mac (información general de la CPU)
  2. Perfil del sistema (información general de la CPU)
  3. Terminal (información detallada de la CPU)


Sobre esta Mac

Al hacer clic en el símbolo de Apple en la parte superior de la pantalla, seleccione Acerca de esta Mac

ingrese la descripción de la imagen aquí

Obtendrá una pantalla que le ofrece una visión general de su sistema. Su procesador aparecerá en la lista aquí.

ingrese la descripción de la imagen aquí


Perfil del sistema

Al hacer clic en el botón marcado Informe del sistema ... (flecha verde) obtendrá un perfil completo de su sistema. En la primera página, le dará información más detallada sobre su máquina, incluida la información del procesador

ingrese la descripción de la imagen aquí

Terminal

Soy fanático de Terminal en general. Se puede acceder a casi todo lo que ve en la GUI en OS X de manera más rápida y precisa a través de la línea de comandos, en mi humilde opinión.

Para obtener el modelo de CPU exacto , incluido el número de microarquitectura, en Terminal, ejecute el siguiente comando:

sysctl -n machdep.cpu.brand_string

Obtendrá el procesador exacto que está utilizando. Por ejemplo, en mi iMac, el comando anterior responde con:

Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

Luego puede hacer una búsqueda de i7-3770 y extraer el nombre del código y las especificaciones.

Solo como referencia, puede usar el comando Terminal:

system_profiler SPHardwareDataType

y obtenga un resultado que se parece a la pantalla que publiqué en la segunda sección, System Profiler :

Hardware Overview:

  Model Name: iMac
  Model Identifier: iMac13,2
  Processor Name: Intel Core i7
  Processor Speed: 3.4 GHz
  Number of Processors: 1
  Total Number of Cores: 4
  L2 Cache (per Core): 256 KB
  L3 Cache: 8 MB
  Memory: 32 GB
  Boot ROM Version: IM131.010A.B09
  SMC Version (system): 2.11f14
  Serial Number (system): XXXXXXXXXXXXXXXXXXX
  Hardware UUID: XXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX

(Crédito a dante12 a continuación)

Entonces, si necesitabas tu CPU o más comúnmente, tu Identificador de modelo , puedes usar el mismo comando junto con grep .

system_profiler SPHardwareDataType | grep Identifier

Responde de vuelta con

  Model Identifier: iMac13,2
Alano
fuente
11
De todas las opciones que proporciona, solo el método Terminal realmente le dirá la arquitectura solicitada en la pregunta, a menos que me falte algo.
Bob
3
@Bob A menos que me falte algo, parece que no puedo detectar la arquitectura en ninguna de las opciones. (excepto que ark.intel.comes capaz de decirme eso después de mirar hacia arriba i7-3770)
Num Lock
44
@NumLock Oh, no es de esperar el nombre de la arquitectura (no creo que la CPU realmente informe como el nombre del código, por lo que el sistema operativo tendría que mantener una base de datos actualizada ...). El número de modelo es suficiente para identificar de manera fácil y única la arquitectura, por lo que la OMI cuenta. Pero las opciones que no son de Terminal aquí ni siquiera proporcionan el número de modelo; tratar de adivinar qué CPU es (y su rendimiento, eficiencia, etc.) solo por el conteo del núcleo y la velocidad del reloj (¿es el reloj base o el turboalimentador máximo?) es inexacto y, en general, una mala idea.
Bob
1
La opción de terminal es lo único útil en esta respuesta. Si le preguntara a alguien en qué CPU estaban probando, y dijeron "Core i7", todo lo que sabría es que era un Nehalem (2008) o más reciente. Hay grandes diferencias entre Nehalem y Sandybridge, y diferencias importantes de SnB a Haswell a Skylake. Debe eliminar las otras opciones para no alentar a las personas a dar respuestas inútiles cuando las personas les preguntan qué microarquitectura tiene su CPU. El número de modelo es excelente, porque puedes ver de un vistazo desde el primer dígito qué microarchivo es, o google para obtener todos los detalles.
Peter Cordes
44
Todavía sugiere dos métodos inútiles que no le indican el número de modelo, solo "i7", y los sugiere primero. No deja en claro que la forma terminal es la única que le permite responder la pregunta del OP. Las cosas "Acerca de" y "Perfil del sistema" parecen ser solo una pérdida de tiempo. Peor aún, la flecha roja que apunta a "información del procesador" implica que "Core i7" es una respuesta válida a la pregunta "¿qué microarquitectura tengo?". Es una pena que no haya una forma de GUI que dé una respuesta satisfactoria, pero no la hay.
Peter Cordes
10

Abra la Terminal y escriba o copie y pegue los siguientes comandos

system_profiler SPHardwareDataType | grep Processor

o

system_profiler SPHardwareDataType

o

sysctl -n machdep.cpu.brand_string
sysctl -a | grep cpu

Además, he encontrado un buen script en Github (Gracias a @ rbanffy ):

open http://www.google.com/?q=$(sysctl -n machdep.cpu.brand_string 
                              | awk '{FS=" " ; print $2 "+" $3 "+" $4}')+site:ark.intel.com
dante12
fuente
Gracias, el $ sysctl -a | grep \.features\: | fmt -w 48comando me ha ayudado para la salida de banderas de la CPU.
Pacificar
5

La CPU tiene su propia cadena de número de modelo incorporada. El software puede ejecutar la CPUIDinstrucción con los parámetros correctos para copiar la cadena en los registros. La cadena será algo así como " Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz". Puede obtenerlo desde la línea de comandos con

sysctl -n machdep.cpu.brand_string

En realidad, no conozco OS X. Respondo esto como alguien que a menudo se siente frustrado por los números de referencia en las respuestas SO que no mencionan el hardware. En Linux, algunas distribuciones se envían lscpuy / o x86info, pero ninguna de ellas decodifica el número de modelo en un nombre de código Intel tampoco. Los números siguen un patrón, por lo que es bastante fácil de decodificar (ver más abajo).

Ninguna de las respuestas existentes ha mencionado ningún método GUI que proporcione el número de modelo. Todos los métodos de la GUI solo le muestran "Core i7", que no es suficiente. Por favor, no le digas a la gente que tienes "un Core i7", porque eso solo hace perder el tiempo de todos .

"i7" podría ser cualquier cosa, desde Nehalem hasta Skylake. Hay grandes diferencias entre Nehalem y Sandybridge, y diferencias importantes de SnB a Haswell a Skylake.


Si alguien le pregunta en qué microarquitectura ejecutó su punto de referencia , la cadena del modelo de esa es una excelente respuesta que contiene más información que solo el nombre de la microarquitectura, así que simplemente cópielo y péguelo (por ejemplo, "CPU i7-3770 @ 3.40GHz").

La mayoría de las personas que le preguntan eso sabrán cómo decodificar números de modelo, así que no sienta que necesita resumirlo o buscarlo. Prefiero que alguien copie / pegue el número de modelo exacto, ya que puedo buscarlo en Google para conocer detalles como el tamaño de la memoria caché. ( http://ark.intel.com/ tiene una página para cada modelo, y generalmente aparecen en los resultados de búsqueda de Google. Sin embargo, no usan los nombres en clave).

Hay modelos "Pentium" y "Celeron" de cada microarquitectura, pero tienen AVX deshabilitado, por lo que las personas solo los usan para máquinas de ultra presupuesto.

Las CPU "i7 extreme" son una excepción a esto. Por ejemplo, i7-5960X sigue siendo Haswell, pero es de 8 núcleos (16 hyperthreads) con memoria de cuatro canales. IDK si Apple vende máquinas con tales CPU.

Wikipedia tiene excelentes tablas de números de modelo para cada microarquitectura. por ejemplo, puede buscar en la wikipedia x5690 de Google para encontrar rápidamente que un Xeon X5690 es un procesador de arquitectura Westmere .


Para obtener más información sobre las diferencias entre las tuberías de varias microarquitecturas , consulte artículos como este de Ars Technica sobre Haswell . Incluso los artículos de Wikipedia no son malos.

Para un punto de vista de arquitectura de CPU más técnico, vea los excelentes escritos de David Kanter en Sandybridge y Haswell .

El PDF de microarquitectura de Agner Fog es excelente si está analizando / ajustando el lenguaje ensamblador (o la salida del compilador), por ejemplo, tratando de dar sentido a los contadores de rendimiento.

Los manuales de optimización de Intel y AMD también tienen algunos detalles de microarquitectura, pero no siempre explican sus sugerencias de optimización de asm con el análisis de cómo funciona la microarquitectura. Por eso prefiero la guía de Agner Fog.

También vea el wiki de etiquetas Stackoverflow x86 , que he ampliado / mejorado mucho en el último año.

Peter Cordes
fuente
1
También más información (un poco desactualizada) aquí . Probablemente pueda obtener los números de familia / modelo / paso a paso, sysctlpero no tengo una Mac para probar eso.
Bob
2

gcc o clang -march=nativepueden imprimir un nombre de código para usted , porque los nombres de las opciones de ajuste coinciden con los nombres de código uarch de Intel (por ejemplo -march=sandybridge). Para AMD: -march=bdver2= Piledriver = Bulldozer versión 2.

clang-3.5 -v -xc /dev/null -O3 -march=native -o- -E 2>&1 | grep -o 'target-cpu \w*'

En mis impresiones de sistemas Linux Core2: target-cpu core2. Supongo que hará algo similar en OS X.

gcc -v -xc /dev/null -O3 -march=native -o- -E 2>&1 | grep -o 'arch=\w*'

en mi sistema Linux Core2 imprime:

arch=native
arch=core2        <----- This one
arch=native

Este comando se compila /dev/nullcomo C ( -xc). gcc/ clang-v prints its internal commands as it runs them, with full command line args. Even with-E (preprocessor-only), the-xc option leads gcc to pass the full set of-march = lo que sea -mmmx -msse2 ... `opciones.

grep -oimprime solo la parte coincidente de las líneas que coinciden. \w*coincide con 0 o más caracteres de palabras.


Necesita una versión suficientemente nueva de clang o gcc para reconocer la microarquitectura de su CPU y asignarla a un nombre en clave. Una versión antigua de gcc simplemente imprimirá algo como -march=core2incluso para un Haswell, -mtune=intelo algo así.

Otro enfoque similar es filtrar la salida asm de gcc's -fverbose-asm, que incluye las opciones de optimización como comentarios. No sé un clang equivalente para esto.

gcc -xc /dev/null -O3 -fverbose-asm -march=native -o- -S | grep -o 'arch=\w*'

arch=core2

Esto funciona en un sistema Haswell: vea este ejemplo en Godbolt Compiler Explorer . Tenga -march=haswellen cuenta el en la salida.

Peter Cordes
fuente
Enfoque interesante y bastante novedoso! Pregunta: ¿es gcco clangalgo que uno esperaría encontrar en una Mac (no programadora)?
Bob
@Bob: IDK, ¡ni siquiera tengo una Mac! Llegué aquí desde la barra lateral de "preguntas de la red activa". Muchos programas de Unix se distribuyen en formato fuente, por lo que algunas personas tendrán un compilador de C en su Mac, incluso si no programa en absoluto, o no en C. (Algunos módulos de Perl vienen con C para compilar, por ejemplo. De todos modos, esta respuesta estaba dirigida principalmente a personas que usan gcc o clang en su Mac con bastante regularidad, pero no son expertos en hardware de Intel. Es posible ser un programador sin ser un experto en hardware.
Peter Cordes
Creo que clangsolo está disponible después de instalar xcode. Besdies es suficiente para usar en clanglugar declang-3.5
Anthony Kong
1

En el menú Apple (arriba a la izquierda de su pantalla) seleccione Acerca de esta Mac. Luego busque un botón que diga Más información, se abrirá una ventana con TODO acerca de la Mac, incluido su número de modelo (MacBook Pro 12.3 por ejemplo), luego use la aplicación MacTracker mencionada anteriormente o simplemente busque ese nombre y obtendrá esa información .

Steve Chambers
fuente
1

Vaya a uno de los sitios de actualización de Mac e ingrese su número de serie / número de modelo en Acerca de esta Mac.

Ejemplo http://www.everymac.com/ultimate-mac-lookup/

Ingrese el número de serie.

Ingrese la información de Catpcha.

Obtendrás las especificaciones de resumen

Haga clic en las especificaciones completas de Mac.

Y le dirá los detalles de los chips (22nm Haswell i5 4250U) además de las comparaciones con los modelos anteriores y posteriores.

Gordon Coale
fuente
1

La mejor manera que encontré para encontrar información sobre su CPU en una computadora Apple es ejecutar la utilidad MacCPUID de Intel. Lo puedes encontrar aquí .

Pablo Varela
fuente
0

Hay una aplicación para iOS y Mac llamada Mactracker . Muestra varias piezas de información sobre Mac.

At0mic
fuente
No estoy seguro de por qué esto fue rechazado. Esta es una aplicación gratuita y muy útil. Simplemente busque el modelo, vaya a la pestaña General y le indica exactamente lo que desea.
Hefewe1zen