Me gustaría identificar qué CPU está usando este portátil, en términos de nombres de código como "Ivy Bridge" y "Haswell". El pequeño logo de Apple en la parte superior izquierda muestra alguna información, pero no esta.
En primer lugar, no obtendrá el nombre de la 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 opta por 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 en clave, 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 buscar en el sitio de soporte de Intel. Puede "saltar" a la sección que se aplica a usted.
Al hacer clic en el símbolo de Apple en la parte superior de la pantalla, seleccione Acerca de esta Mac
Aparecerá una pantalla que le brinda una descripción general de su sistema. Su procesador aparecerá aquí.
Al hacer clic en el botón 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.
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 comando, 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
A continuación, puede realizar una búsqueda de i7-3770 y obtener 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 abajo)
Entonces, si necesita su CPU o, más comúnmente, su Identificador de modelo , puede usar el mismo comando junto con grep .
system_profiler SPHardwareDataType | grep Identifier
Responde con
Model Identifier: iMac13,2
Abra 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, encontré 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
$ sysctl -a | grep \.features\: | fmt -w 48
el comando me ayudó con la salida de indicadores de CPU.La CPU tiene su propia cadena de número de modelo incorporada. El software puede ejecutar la CPUID
instrucción con los parámetros correctos para copiar la cadena en 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. Estoy respondiendo esto como alguien que a menudo se siente frustrado por los números de referencia en las respuestas de SO que no mencionan el hardware. En Linux, algunas distribuciones envían lscpu
y/o x86info
, pero ninguna decodifica el número de modelo en un nombre en clave de Intel. 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 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 a todos .
"i7" podría ser cualquier cosa, desde Nehalem hasta Skylake. Hay grandes diferencias entre Nehalem y Sandybridge, e importantes diferencias entre SnB, Haswell y Skylake.
Si alguien le pregunta en qué microarquitectura ejecutó su punto de referencia , la cadena de 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, "i7-3770 CPU @ 3.40GHz").
La mayoría de las personas que te pregunten eso sabrán cómo decodificar los números de modelo, así que no sientas la necesidad de resumirlo o buscarlo por ellos. Prefiero que alguien copie/pegue el número de modelo exacto, ya que puedo buscarlo en Google para encontrar detalles como el tamaño del caché. ( http://ark.intel.com/ tiene una página para cada modelo, y esos por lo general ocupan un lugar destacado en los resultados de búsqueda de Google. Sin embargo, esos no usan los nombres en clave).
Hay modelos "Pentium" y "Celeron" de cada microarquitectura, pero tienen AVX deshabilitado, por lo que la gente solo los usa para máquinas de ultra presupuesto.
Las CPU "i7 extreme" son una excepción a esto. por ejemplo, i7-5960X sigue siendo Haswell, pero tiene 8 núcleos (16 hiperprocesos) 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 google x5690 wikipedia 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 canalizaciones de varias microarquitecturas , consulte artículos como este de Ars Technica sobre Haswell . Incluso los artículos de Wikipedia no son malos.
Para obtener un punto de vista más técnico de la arquitectura de la CPU, consulte los excelentes artículos de Sandybridge y Haswell de David Kanter .
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 un análisis de cómo funciona la microarquitectura. Por eso prefiero la guía de Agner Fog.
Consulte también la wiki de etiquetas Stackoverflow x86 , que he ampliado/mejorado mucho el año pasado.
sysctl
pero no tengo una Mac para probar eso.(Actualización: clang -march=native
es posible que la parte de esta respuesta ya no funcione, si alguna vez lo hizo. Es posible que deba instalar GCC específicamente, por ejemplo, desde brew
. Tenga en cuenta que XCode instala un gcc
enlace simbólico para sonar, por lo que si no tiene GCC real instalado, el gcc
comando en una Mac obtendrá Clang).
gcc o clang -march=native
pueden imprimir un nombre en clave para usted , porque los nombres de las opciones de ajuste coinciden con los nombres en clave uarch de Intel (p. ej -march=sandybridge
.). Para AMD: -march=bdver2
= Piledriver = Bulldozer versión 2.
clang -v -xc /dev/null -O3 -march=native -o- -E 2>&1 | grep -o 'target-cpu \w*'
En mi sistema Linux Core2 imprime: 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 compila /dev/null
como 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 -o
imprime solo la parte coincidente de las líneas que coinciden. \w*
coincide con 0 o más caracteres de palabra.
Necesita una versión lo 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=core2
incluso para un Haswell, -mtune=intel
o algo así.
Otro enfoque similar es filtrar la salida de asm de gcc -fverbose-asm
, que incluye las opciones de optimización como comentarios. No conozco un equivalente de sonido metálico 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 en cuenta -march=haswell
en la salida. (Actualización de 2022: -march=skylake-avx512
con GCC más antiguo pensando que la CPU más nueva era -march=knl
, Xeon Phi Knight's Landing, que es una microarquitectura muy diferente).
gcc
o clang
algo que uno esperaría encontrar en una Mac (no programadora)?clang
solo está disponible después de instalar xcode. Besdies es suficiente para usar clang
en lugar declang-3.5
clang: error: the clang compiler does not support '-march=native'
. Usando la clang
versión de Apple 13.1.6
( clang-1316.0.21.2.5
).Hay una aplicación para iOS y Mac llamada Mactracker . Muestra varias piezas de información sobre Mac.
Vaya a uno de los sitios de actualización de Mac e ingrese su número de serie/número de modelo de Acerca de esta Mac.
Ejemplo http://www.everymac.com/ultimate-mac-lookup/
Ingrese el número de serie
Ingrese la información de Cappcha.
Obtendrá las especificaciones de resumen
Haga clic en Completar especificaciones 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.
En el menú de Apple (arriba a la izquierda de la pantalla), seleccione Acerca de esta Mac. Luego busque un botón que diga Más información, se abrirá una ventana con TODO sobre 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. .
La mejor manera que encontré para encontrar información sobre su CPU en una computadora Apple es ejecutar la utilidad MacCPUID de Intel. Puedes encontrarlo aquí .
Si está aquí para obtener las instrucciones compatibles de una CPU Apple Silicon Mac como yo, querrá:
$ sysctl hw
hw.ncpu: 8
hw.byteorder: 1234
hw.memsize: 17179869184
hw.activecpu: 8
hw.perflevel0.physicalcpu: 4
hw.perflevel0.physicalcpu_max: 4
hw.perflevel0.logicalcpu: 4
hw.perflevel0.logicalcpu_max: 4
hw.perflevel0.l1icachesize: 196608
hw.perflevel0.l1dcachesize: 131072
hw.perflevel0.l2cachesize: 12582912
hw.perflevel0.cpusperl2: 4
hw.perflevel1.physicalcpu: 4
hw.perflevel1.physicalcpu_max: 4
hw.perflevel1.logicalcpu: 4
hw.perflevel1.logicalcpu_max: 4
hw.perflevel1.l1icachesize: 131072
hw.perflevel1.l1dcachesize: 65536
hw.perflevel1.l2cachesize: 4194304
hw.perflevel1.cpusperl2: 4
...
sysctl -a machdep.cpu
sigue siendoBasado en las soluciones proporcionadas en este hilo y otros, he elaborado este pequeño script.
#!/bin/bash
# List CPU information
# https://apple.stackexchange.com/questions/352769/does-macos-have-a-command-to-retrieve-detailed-cpu-information-like-proc-cpuinf/352770
# Also : https://apple.stackexchange.com/questions/238777/how-do-i-identify-which-cpu-a-macbook-uses/238789#238789
# Interesting output with `system_profiler SPHardwareDataType | grep Processor`
usage () {
printf "%s \n" "Usage : ./cpu_info.sh [--short | --all | --help]"
printf "\n"
printf "%s \n" "--short : print CPU Brand/Model, Core count, Thread count."
printf "%s \n" "--all : print all cpu information."
printf "%s \n" "--help : print this usage message."
}
if [ -z "$1" ]; then
sysctl -n machdep.cpu.brand_string
sysctl -a | grep machdep.cpu.core_count | sed 's/machdep.//'
sysctl -a | grep machdep.cpu.thread_count | sed 's/machdep.//'
elif [ "$1" = "--all" ]; then
sysctl -a | grep machdep.cpu
elif [ "$1" = "--short" ]; then
sysctl -n machdep.cpu.brand_string
sysctl -a | grep machdep.cpu.core_count | sed 's/machdep.//'
sysctl -a | grep machdep.cpu.thread_count | sed 's/machdep.//'
elif [ "$1" = "--help" ]; then
usage
else
usage
fi
Te da una salida como esta:
❯ ./cpu_info.sh
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
cpu.core_count: 4
cpu.thread_count: 8
Siéntase libre de copiar/pegar desde aquí o vaya al repositorio de GitHub correspondiente para obtener la última versión disponible: https://github.com/kral2/osx-scripts/blob/main/system-config/cpu_info.sh
Beto
Num lock
ark.intel.com
es capaz de decirme eso después de mirar hacia arribai7-3770
)Beto
pedro cordes
Alano
pedro cordes
Marte
franklin yu