Come faccio a identificare quale CPU utilizza un MacBook?


28

Vorrei identificare quale CPU sta usando questo notebook, in termini di nomi in codice come "Ivy Bridge" e "Haswell". Il piccolo logo Apple in alto a sinistra mostra alcune informazioni, ma non questo.


2
Bene, finora nessuna delle risposte mi dice per certo quale sia il mio processore, a parte un numero di codice. Anche cercare il processore in Intel non dà la "famiglia". Solo Mactracker e Everymac hanno anche un'ipotesi, e tra loro potrebbe essere uno qualsiasi di 5 ... o no, perché la mia CPU effettiva non è mai stata venduta in un nuovo Mac - Intel (R) Xeon® CPU X5690 @ 3.47GHz
Tetsujin

2
@Tetsujin: google x5690 wikipedia e vedrai che si tratta di una CPU per microarchitettura Westmere . (die ridursi di Nehalem con prestazioni identiche, ma ha aggiunto le nuove istruzioni AES e si moltiplica senza carry per criptovaluta).
Peter Cordes,

2
@PeterCordes - di sicuro. In realtà sapevo che si tratta di una macchina Westmere, ma il mio punto principale era che nessuna delle risposte finora mi avrebbe detto che senza un piccolo Google-Fu mio, quindi in realtà non rispondere alla domanda del PO, di per sé.
Tetsujin,

1
@Tetsujin: buon punto; questo è uno di quei casi in cui le persone che conoscono la risposta dimenticano che non è ovvio per le persone che non lo sanno. Ho aggiunto una risposta che copre il passaggio 2.
Peter Cordes,

e anche una risposta eccellente.
Tetsujin,

Risposte:


39

Prima di tutto, non otterrai il nome della microarchitettura del processore (Broadwell, Sandy Lake, Ivy Bridge, ecc.) Perché non è uno schema di branding prominente per i processori Intel. In contrasto con Apple, il dipartimento marketing sceglie di commercializzare attivamente i nomi in codice dei loro sistemi operativi (Mavericks, Yosemite, El Capitan). È una convenzione di marketing, non tecnica.

Per un elenco di tutti i processori Intel e i loro nomi in codice, architetture e specifiche, l'elenco dei microprocessori Intel di Wikipedia ha una buona pagina.

Quindi, per rispondere a questa domanda, fornirò tre metodi per scoprire quale CPU hai, i primi due, che dovrebbero essere buoni per la maggior parte degli utenti, e un terzo metodo in cui puoi determinare il numero di microarchitettura in modo da poter guardare sul sito di supporto di Intel. Puoi "saltare" alla sezione che si applica a te.

  1. Informazioni su questo Mac (informazioni generali sulla CPU)
  2. System Profiler (informazioni generali sulla CPU)
  3. Terminale (informazioni dettagliate sulla CPU)


A proposito di questo Mac

Facendo clic sul simbolo Apple nella parte superiore dello schermo, seleziona Informazioni su questo Mac

inserisci qui la descrizione dell'immagine

Verrà visualizzata una schermata che offre una panoramica del sistema. Il tuo processore sarà elencato qui.

inserisci qui la descrizione dell'immagine


System Profiler

Facendo clic sul pulsante contrassegnato come Rapporto di sistema ... (freccia verde) si ottiene un profilo completo del sistema. Nella prima pagina, ti darà informazioni più dettagliate sulla tua macchina, comprese le informazioni sul processore

inserisci qui la descrizione dell'immagine

terminale

Sono un fan di Terminal in generale. Praticamente tutto ciò che vedi nella GUI in OS X è accessibile più rapidamente e con maggiore precisione tramite la riga di comando, IMHO.

Per ottenere il modello esatto di CPU incluso il numero di microarchitettura, in Terminale, eseguire il comando seguente:

sysctl -n machdep.cpu.brand_string

Otterrai l'esatto processore che stai utilizzando. Ad esempio, sul mio iMac, il comando sopra risponde con:

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

È quindi possibile effettuare una ricerca per i7-3770 e visualizzare il nome in codice e le specifiche.

Solo per riferimento, è possibile utilizzare il comando Terminale:

system_profiler SPHardwareDataType

e ottieni un risultato simile alla schermata che ho pubblicato nella seconda sezione, 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

(Credito a dante12 di seguito)

Quindi, se hai bisogno della tua CPU o più comunemente, del tuo Identificatore modello , puoi usare lo stesso comando associato a grep .

system_profiler SPHardwareDataType | grep Identifier

Risponde con

  Model Identifier: iMac13,2

11
Di tutte le opzioni fornite, solo il metodo Terminal ti dirà effettivamente l'architettura come richiesto nella domanda, a meno che non mi manchi qualcosa.
Bob,

3
@Bob A meno che non mi manchi qualcosa, non riesco a individuare l'architettura in nessuna delle due opzioni. (tranne che ark.intel.comè in grado di dirmi che dopo aver sollevato lo sguardo i7-3770)
Num Lock,

4
@NumLock Oh, non è prevedibile il nome dell'architettura (non credo che la CPU in realtà riporti come nome in codice, quindi il sistema operativo dovrebbe mantenere un database aggiornato ...). Il numero del modello è sufficiente per identificare facilmente e in modo univoco l'architettura, quindi l'IMO conta. Ma le opzioni non terminali qui non forniscono nemmeno il numero del modello; tentare di indovinare quale CPU è (e le sue prestazioni, efficienza, ecc.) solo per il numero di core e la velocità di clock (è clock di base o boost turbo massimo?) è impreciso e generalmente una cattiva idea.
Bob,

1
L'opzione terminale è l'unica cosa utile in questa risposta. Se avessi chiesto a qualcuno su quale CPU stessero testando, e loro avessero detto "Core i7", tutto ciò che avrei saputo è che era un Nehalem (2008) o più recente. Ci sono enormi differenze tra Nehalem e Sandybridge e differenze importanti da SnB a Haswell a Skylake. Dovresti rimuovere le altre opzioni per non incoraggiare le persone a dare risposte inutili quando chiedono loro quale microarchitettura ha la loro CPU. Il numero del modello è eccezionale, perché puoi capire a prima vista dalla prima cifra che cos'è il microarch o google per i dettagli completi.
Peter Cordes,

4
Suggerisci ancora due metodi inutili che non ti dicono il numero del modello, solo "i7", e li suggerisci prima. Non chiarisci che la via terminale è l'unica che ti consente di rispondere alla domanda del PO. Le cose "Informazioni" e "Profiler di sistema" sembrano essere solo una perdita di tempo. Ancora peggio, la freccia rossa che indica "informazioni sul processore" implica che "Core i7" è una risposta valida alla domanda "che microarchitettura ho". Peccato che non esiste un modo GUI che dia una risposta soddisfacente, ma non lo è.
Peter Cordes,

10

Apri Terminale e digita o copia e incolla i seguenti comandi

system_profiler SPHardwareDataType | grep Processor

o

system_profiler SPHardwareDataType

o

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

Inoltre, ho trovato una bella sceneggiatura su Github (grazie a @ rbanffy ):

open http://www.google.com/?q=$(sysctl -n machdep.cpu.brand_string 
                              | awk '{FS=" " ; print $2 "+" $3 "+" $4}')+site:ark.intel.com

Grazie, il $ sysctl -a | grep \.features\: | fmt -w 48comando mi ha aiutato per l'output dei flag della CPU.
pacifica il

5

La CPU ha la propria stringa di numero di modello incorporata. Il software può eseguire l' CPUIDistruzione con i parametri giusti per copiare la stringa nei registri. La stringa sarà simile a " Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz". Puoi ottenerlo dalla riga di comando con

sysctl -n machdep.cpu.brand_string

In realtà non conosco OS X. Sto rispondendo a questa domanda come qualcuno che è spesso frustrato dai numeri di riferimento nelle risposte SO che non menzionano l'hardware. Su Linux, alcune distribuzioni vengono spedite lscpue / o x86info, ma nessuna delle due decodifica il numero del modello in un nome in codice Intel. I numeri seguono uno schema, quindi è abbastanza facile da decodificare (vedi sotto).

Nessuna delle risposte esistenti ha menzionato alcun metodo GUI che fornisce il numero di modello. Tutti i metodi della GUI mostrano semplicemente "Core i7", che non è assolutamente sufficiente. Per favore, non dire alla gente che hai "un core i7", perché questo fa perdere tempo a tutti .

"i7" potrebbe essere qualsiasi cosa, da Nehalem a Skylake. Ci sono enormi differenze tra Nehalem e Sandybridge e differenze importanti da SnB a Haswell a Skylake.


Se qualcuno ti chiede su quale microarchitettura hai eseguito il tuo benchmark , la stringa del modello da questa è un'ottima risposta contenente più informazioni oltre al nome della microarchitettura, quindi copia e incolla su di essa (ad esempio "CPU i7-3770 @ 3.40GHz").

La maggior parte delle persone che ti chiedono che sapranno decodificare i numeri di modello, quindi non sentirti in dovere di riassumerlo o cercarlo. Preferirei piuttosto che qualcuno copiasse / incollasse il numero esatto del modello, dato che posso cercarlo su Google per scoprire dettagli come la dimensione della cache. ( http://ark.intel.com/ ha una pagina per ogni modello, e quelli di solito arrivano in alto nei risultati di ricerca di Google. Tuttavia, quelli non usano i nomi in codice).

Ci sono modelli "Pentium" e "Celeron" di ogni microarchitettura, ma hanno AVX disabilitato, quindi le persone li usano solo per macchine ultra-economiche.

Le CPU "i7 extreme" sono un'eccezione a questo. ad es. i7-5960X è ancora Haswell, ma è 8 core (16 hyperthreads) con memoria quad-channel. IDK se Apple vende macchine con tali CPU.

Wikipedia ha eccellenti tabelle di numeri di modello per ogni microarchitettura. Ad esempio, puoi cercare su Google x5690 Wikipedia per scoprire rapidamente che un Xeon X5690 è un processore di architettura Westmere .


Per saperne di più sulle differenze tra le condutture di varie microarchitettura , vedi articoli come questo Ars Technica su Haswell . Anche gli articoli di Wikipedia non sono male.

Per un punto di vista più tecnico sull'architettura della CPU, vedere gli eccellenti scritti di David Kanter Sandybridge e Haswell .

Il PDF di microarchitettura di Agner Fog è eccellente se stai analizzando / ottimizzando il linguaggio assembly (o l'output del compilatore), ad esempio cercando di dare un senso ai contatori di perf.

I manuali di ottimizzazione di Intel e AMD presentano anche alcuni dettagli microarchitettura, ma non sempre spiegano i loro suggerimenti di ottimizzazione asm con l'analisi del funzionamento della microarchitettura. Ecco perché preferisco la guida alla nebbia di Agner.

Vedi anche il wiki di Stackoverflow x86 wiki , che ho ampliato / migliorato molto nell'ultimo anno.


1
Altre informazioni (leggermente obsolete) qui . Probabilmente puoi ottenere i numeri di famiglia / modello / stepping con sysctlma non ho un Mac per provarlo.
Bob,

2

gcc o clang -march=nativepossono stampare un nome in codice per te , perché i nomi delle opzioni di ottimizzazione corrispondono ai nomi in codice uarch di Intel (ad esempio -march=sandybridge). Per AMD: -march=bdver2= Piledriver = Bulldozer versione 2.

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

Sul mio sistema stampa Linux Core2: target-cpu core2. Presumo che farà qualcosa di simile su OS X.

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

sul mio sistema Linux Core2 stampa:

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

Questo comando viene compilato /dev/nullcome 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 = opzioni qualunque -mmmx -msse2 ... `.

grep -ostampa solo la parte corrispondente delle linee corrispondenti. \w*corrisponde a 0 o più caratteri di parole.


Hai bisogno di una versione abbastanza nuova di clang o gcc per riconoscere la microarchitettura della tua CPU e mapparla su un nome in codice. Una vecchia versione di gcc stamperà semplicemente qualcosa come -march=core2anche per un Haswell, e -mtune=intelo qualcosa del genere.

Un altro approccio simile è quello di filtrare l'output di asm da gcc -fverbose-asm, che include le opzioni di ottimizzazione come commenti. Non conosco un clang equivalente per questo.

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

arch=core2

Funziona su un sistema Haswell: vedi questo esempio su Godbolt Compiler Explorer . Nota -march=haswellnell'output.


Approccio interessante e piuttosto nuovo! Domanda: è gcco clangqualcosa che ci si aspetterebbe di trovare su un Mac (non programmatore)?
Bob,

@Bob: IDK, non possiedo nemmeno un Mac! Sono arrivato qui dalla barra laterale "Domande sulla rete attiva". Molti programmi Unix sono distribuiti in formato sorgente, quindi alcune persone avranno un compilatore C sul proprio Mac, anche se non si programma affatto, o non in C. (Alcuni moduli perl vengono forniti con C da compilare, per esempio. ) Comunque, questa risposta era indirizzata principalmente a persone che usano gcc o clang sul proprio Mac abbastanza regolarmente, ma non sono esperti hardware Intel. È possibile essere un programmatore senza essere un fanatico dell'hardware.
Peter Cordes,

Penso che clangsia disponibile solo dopo aver installato xcode. Besdies è sufficiente usare clanginvece diclang-3.5
Anthony Kong il

1

Nel menu Apple (in alto a sinistra sullo schermo) seleziona Informazioni su questo Mac. Quindi cerca un pulsante che dice Ulteriori informazioni, aprirà una finestra con TUTTO sul mac incluso il suo numero di modello (ad esempio MacBook Pro 12.3), quindi utilizza l'app MacTracker sopra menzionata o cerca semplicemente quel nome e otterrai quelle informazioni .


1

Vai a uno dei siti di aggiornamento del Mac e inserisci il tuo numero di serie / numero di modello da Informazioni su questo Mac.

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

Inserire il numero di serie

Immettere le informazioni Catpcha.

Otterrai le specifiche di riepilogo

Fai clic su Specifiche complete del Mac.

E ti dirà i dettagli dei chip (22nm Haswell i5 4250U) oltre a confronti con i modelli precedenti e successivi.


1

Il modo migliore che ho trovato per scoprire informazioni sulla tua CPU in un computer Apple è eseguire l'utility MacCPUID di Intel. Puoi trovarlo qui .


0

C'è un'app per iOS e Mac chiamata Mactracker . Mostra varie informazioni sui Mac.


Non sono sicuro del motivo per cui questo è stato sottoposto a downgrade. Questa è un'app gratuita e molto utile. Trova semplicemente il modello, vai alla scheda Generale e ti dice esattamente quello che vuoi.
Hefewe1zen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.