Comment identifier le processeur utilisé par un MacBook?

28

Je voudrais identifier quel CPU ce portable utilise, en termes de noms de code tels que "Ivy Bridge" et "Haswell". Le petit logo Apple en haut à gauche montre quelques informations, mais pas cela.

DarenW
la source
2
Eh bien, jusqu'à présent, aucune des réponses ne me dit avec certitude quel est mon processeur, autre qu'un numéro de code. Même rechercher le processeur chez Intel ne donne pas la «famille». Seuls Mactracker et Everymac ont même une supposition, et entre eux, il pourrait s'agir de 5 ... ou pas, car mon processeur réel n'a jamais été vendu dans un nouveau Mac - Intel (R) Xeon® CPU X5690 @ 3,47 GHz
Tetsujin
2
@Tetsujin: google x5690 wikipedia et vous verrez que c'est un micro-architecture Westmere . (die psy de Nehalem avec des performances identiques, mais a ajouté les nouvelles instructions AES et la multiplication sans retenue pour la crypto).
Peter Cordes
2
@PeterCordes - c'est sûr. Je savais en fait qu'il s'agissait d'une machine Westmere, mais mon point principal était qu'aucune des réponses à ce jour ne me dirait que sans un petit Google-Fu, alors ne répondez pas réellement à la question du PO en soi.
Tetsujin
1
@Tetsujin: bon point; c'est l'un de ces cas où les gens qui connaissent la réponse oublient que ce n'est pas évident pour les gens qui ne le savent pas. J'ai ajouté une réponse qui couvre l'étape 2.
Peter Cordes
et c'est aussi une excellente réponse.
Tetsujin

Réponses:

39

Tout d'abord, vous n'obtiendrez pas le nom de microarchitecture du processeur (Broadwell, Sandy Lake, Ivy Bridge, etc.) car ce n'est pas un schéma de marque proéminent pour les processeurs Intel. Contrairement à Apple, le service marketing choisit de commercialiser activement les noms de code de leurs systèmes d'exploitation (Mavericks, Yosemite, El Capitan). C'est une convention de marketing, pas une convention technique.

Pour une liste de tous les processeurs Intel et leurs noms de code, architectures et spécifications, la liste des microprocesseurs Intel de Wikipédia a une bonne page.

Donc, pour répondre à cette question, je vais fournir trois méthodes pour savoir quel processeur vous avez, les deux premières, qui devraient être bonnes pour la plupart des utilisateurs, et une troisième méthode dans laquelle vous pouvez déterminer le numéro de microarchitecture afin que vous puissiez regarder sur le site de support d'Intel. Vous pouvez "sauter" à la section qui vous concerne.

  1. À propos de ce Mac (informations générales sur le processeur)
  2. System Profiler (informations générales sur le processeur)
  3. Terminal (informations détaillées sur le processeur)


À propos de ce Mac

En cliquant sur le symbole Apple en haut de votre écran, sélectionnez À propos de ce Mac

entrez la description de l'image ici

Vous obtiendrez un écran qui vous donnera un aperçu de votre système. Votre processeur sera répertorié ici.

entrez la description de l'image ici


Profileur système

En cliquant sur le bouton marqué Rapport système ... (flèche verte) vous obtenez un profil complet de votre système. Sur la première page, il vous donnera des informations plus détaillées sur votre machine, y compris des informations sur le processeur

entrez la description de l'image ici

Terminal

Je suis fan de Terminal en général. Presque tout ce que vous voyez dans l'interface graphique sous OS X est accessible plus rapidement et plus précisément via la ligne de commande, à mon humble avis.

Pour obtenir le modèle de processeur exact , y compris le numéro de microarchitecture, dans Terminal, exécutez la commande suivante:

sysctl -n machdep.cpu.brand_string

Vous obtiendrez le processeur exact que vous utilisez. Par exemple, sur mon iMac, la commande ci-dessus répond avec:

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

Vous pouvez ensuite faire une recherche pour i7-3770 et afficher le nom de code et les spécifications.

Juste pour référence, vous pouvez utiliser la commande Terminal:

system_profiler SPHardwareDataType

et obtenir un résultat qui ressemble à l'écran que j'ai publié dans la deuxième section, 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édit à dante12 ci-dessous)

Donc, si vous avez besoin de votre CPU ou plus communément, de votre identifiant de modèle , vous pouvez utiliser la même commande couplée à grep .

system_profiler SPHardwareDataType | grep Identifier

Il répond avec

  Model Identifier: iMac13,2
Allan
la source
11
Parmi toutes les options que vous fournissez, seule la méthode Terminal vous indiquera réellement l'architecture comme demandé dans la question, sauf si je manque quelque chose.
Bob
3
@Bob À moins que je manque quelque chose, je n'arrive pas à repérer l'architecture dans l'une ou l'autre option. (sauf que cela ark.intel.compeut me dire qu'après avoir levé les yeux i7-3770)
Verrouillage numérique
4
@NumLock Oh, ne pas avoir le nom de l'architecture est à prévoir (je ne pense pas que le CPU rapporte réellement comme nom de code, donc le système d'exploitation devrait garder une base de données à jour ...). Le numéro de modèle est suffisant pour identifier facilement et de manière unique l'architecture, donc l'OMI qui compte. Mais les options non-terminales ici ne fournissent même pas le numéro de modèle; essayer de deviner de quel processeur il s'agit (et de ses performances, de son efficacité, etc.) uniquement par le nombre de cœurs et la vitesse d'horloge (est-ce une horloge de base ou un boost turbo max?) est inexact et généralement une mauvaise idée.
Bob
1
L'option terminal est la seule chose utile dans cette réponse. Si je demandais à quelqu'un sur quel CPU ils testaient, et ils répondaient "Core i7", tout ce que je sais, c'est que c'était un Nehalem (2008) ou plus récent. Il existe d'énormes différences entre Nehalem et Sandybridge, et d'importantes différences entre SnB, Haswell et Skylake. Vous devez supprimer les autres options pour ne pas encourager les gens à donner des réponses inutiles lorsque les gens leur demandent quelle microarchitecture a leur CPU. Le numéro de modèle est excellent, car vous pouvez dire en un coup d'œil à partir du premier chiffre de quel microarch il s'agit, ou google pour plus de détails.
Peter Cordes
4
Vous proposez toujours deux méthodes inutiles qui ne vous indiquent pas le numéro de modèle, seulement "i7", et vous les proposez d'abord. Vous ne précisez pas que la voie du terminal est la seule qui vous permet de répondre à la question du PO. Les trucs "A propos" et "System Profiler" semblent être juste une perte de temps. Pire encore, la flèche rouge pointant sur "info processeur" implique que "Core i7" est une réponse valable à la question "quelle microarchitecture ai-je". C'est dommage qu'il n'y ait pas de méthode graphique qui donne une réponse satisfaisante, mais il n'y en a pas.
Peter Cordes
10

Ouvrez Terminal et tapez ou copiez et collez la ou les commandes suivantes

system_profiler SPHardwareDataType | grep Processor

ou

system_profiler SPHardwareDataType

ou

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

De plus, j'ai trouvé un joli script sur Github (Merci à @ rbanffy ):

open http://www.google.com/?q=$(sysctl -n machdep.cpu.brand_string 
                              | awk '{FS=" " ; print $2 "+" $3 "+" $4}')+site:ark.intel.com
dante12
la source
Merci, la $ sysctl -a | grep \.features\: | fmt -w 48commande m'a aidé pour la sortie des drapeaux CPU.
pacifier le
5

Le CPU a sa propre chaîne de numéro de modèle intégrée. Le logiciel peut exécuter l' CPUIDinstruction avec les bons paramètres pour copier la chaîne dans des registres. La chaîne sera quelque chose comme " Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz". Vous pouvez l'obtenir à partir de la ligne de commande avec

sysctl -n machdep.cpu.brand_string

Je ne connais pas vraiment OS X. Je réponds à cela comme quelqu'un qui est souvent frustré par les chiffres de référence dans les réponses SO qui ne mentionnent pas le matériel. Sous Linux, certaines distributions sont livrées lscpuet / ou x86info, mais aucune ne décode le numéro de modèle en un nom de code Intel non plus. Les chiffres suivent un modèle, il est donc assez facile à décoder (voir ci-dessous).

Aucune des réponses existantes n'a mentionné de méthode GUI donnant le numéro de modèle. Toutes les méthodes de l'interface graphique vous montrent simplement "Core i7", ce qui est loin d'être suffisant. S'il vous plaît, ne dites pas aux gens que vous avez "un Core i7", car cela fait perdre du temps à tout le monde .

"i7" pourrait être n'importe quoi de Nehalem à Skylake. Il existe d'énormes différences entre Nehalem et Sandybridge, et d'importantes différences entre SnB, Haswell et Skylake.


Si quelqu'un vous demande sur quelle microarchitecture vous avez exécuté votre benchmark , la chaîne de modèle de celle-ci est une excellente réponse contenant plus d'informations que le nom de la microarchitecture, alors copiez-collez-les simplement (par exemple "i7-3770 CPU @ 3.40GHz").

La plupart des gens qui vous demandent qui sauront comment décoder les numéros de modèle, ne vous sentez donc pas obligé de les résumer ou de les rechercher. Je préfère de loin que quelqu'un copie / colle le numéro de modèle exact, car je peux le rechercher sur Google pour trouver des détails tels que la taille du cache. ( http://ark.intel.com/ a une page pour chaque modèle, et ceux-ci apparaissent généralement en haut dans les résultats de recherche de Google. Cependant, ceux-ci n'utilisent pas les noms de code).

Il existe des modèles "Pentium" et "Celeron" de chaque microarchitecture, mais ils ont AVX désactivé afin que les gens ne les utilisent que pour des machines ultra-économiques.

Les CPU "i7 extreme" font exception à cette règle. Par exemple, l'i7-5960X est toujours Haswell, mais est à 8 cœurs (16 hyperthreads) avec une mémoire à quatre canaux. IDK si Apple vend des machines avec de tels processeurs.

Wikipedia a d'excellents tableaux de numéros de modèle pour chaque microarchitecture. par exemple, vous pouvez google x5690 wikipedia pour trouver rapidement qu'un Xeon X5690 est un processeur d' architecture Westmere .


Pour en savoir plus sur les différences entre les pipelines de différentes microarchitectures , consultez des articles comme celui d' Ars Technica sur Haswell . Même les articles Wikipedia ne sont pas mauvais.

Pour un point de vue plus technique sur l'architecture CPU, voir les excellents écrits de Sandybridge et Haswell de David Kanter .

La microarchitecture PDF d'Agner Fog est excellente si vous analysez / ajustez le langage d'assemblage (ou la sortie du compilateur), par exemple en essayant de donner un sens aux compteurs de performances.

Les manuels d'optimisation d'Intel et d'AMD contiennent également des détails microarchitecturaux, mais n'expliquent pas toujours leurs suggestions d'optimisation asm avec une analyse du fonctionnement de la microarchitecture. C'est pourquoi je préfère le guide d'Agner Fog.

Voir également le wiki de balises Stackoverflow x86 , que j'ai beaucoup étendu / amélioré au cours de la dernière année.

Peter Cordes
la source
1
Plus d'informations (un peu dépassées) ici . Vous pouvez probablement obtenir les numéros de famille / modèle / stepping avec sysctlmais je n'ai pas de Mac pour l'essayer.
Bob
2

gcc ou clang -march=nativepeuvent imprimer un nom de code pour vous , car les noms des options de réglage correspondent aux noms de code uarch d'Intel (par exemple -march=sandybridge). Pour AMD: -march=bdver2= Piledriver = Bulldozer version 2.

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

Sur mes impressions système Linux Core2: target-cpu core2. Je suppose qu'il fera quelque chose de similaire sur OS X.

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

sur mon système Linux Core2 imprime:

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

Cette commande se compile /dev/nullen 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 = quelles que soient les options -mmmx -msse2 ... `.

grep -oimprime uniquement la partie correspondante des lignes qui correspondent. \w*correspond à 0 ou plusieurs mots.


Vous avez besoin d'une nouvelle version suffisante de clang ou gcc pour reconnaître la microarchitecture de votre CPU et la mapper sur un nom de code. Une ancienne version de gcc imprimera simplement quelque chose comme -march=core2même pour un Haswell, et -mtune=intelou quelque chose.

Une autre approche similaire consiste à filtrer la sortie asm des gcc -fverbose-asm, qui inclut les options d'optimisation en tant que commentaires. Je ne connais pas d'équivalent pour ça.

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

arch=core2

Cela fonctionne sur un système Haswell: voir cet exemple sur Godbolt Compiler Explorer . Notez le -march=haswelldans la sortie.

Peter Cordes
la source
Approche intéressante et plutôt originale! Question: est-ce gccou clangquelque chose que l'on s'attendrait à trouver sur un Mac (non programmeur)?
Bob
@Bob: IDK, je ne possède même pas de Mac! Je suis arrivé ici à partir de la barre latérale "questions réseau chaudes". De nombreux programmes Unix sont distribués sous forme source, donc certaines personnes auront un compilateur C sur leur Mac, même si vous ne programmez pas du tout, ou pas en C. (Certains modules Perl sont livrés avec C pour être compilés, par exemple. ) Quoi qu'il en soit, cette réponse était principalement destinée aux personnes qui utilisent gcc ou clang sur leur Mac assez régulièrement, mais qui ne sont pas des experts en matériel Intel. Il est possible d'être programmeur sans être un geek matériel.
Peter Cordes
Je pense que clangn'est disponible qu'après avoir installé xcode. Besdies il suffit d'utiliser clangau lieu declang-3.5
Anthony Kong
1

Dans le menu Apple (en haut à gauche de votre écran), sélectionnez À propos de ce Mac. Ensuite, recherchez un bouton qui dit Plus d'informations, il ouvrira une fenêtre avec TOUT sur le mac, y compris son numéro de modèle (MacBook Pro 12.3 par exemple), puis utilisez l'application MacTracker mentionnée ci-dessus ou recherchez simplement ce nom et vous obtiendrez ces informations .

Steve Chambers
la source
1

Accédez à l'un des sites de mise à niveau Mac et entrez votre numéro de série / modèle à partir de À propos de ce Mac.

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

Entrez le numéro de série.

Entrez les informations Catpcha.

Vous obtiendrez les spécifications du résumé

Cliquez sur Spécifications Mac complètes.

Et il vous indiquera les détails des puces (22nm Haswell i5 4250U) ainsi que des comparaisons avec les modèles antérieurs et ultérieurs.

Gordon Coale
la source
1

La meilleure façon que j'ai trouvée pour trouver des informations sur votre CPU dans un ordinateur Apple est d'exécuter l'utilitaire MacCPUID par Intel. Vous pouvez le trouver ici .

Pablo Varela
la source
0

Il existe une application iOS et Mac appelée Mactracker . Il montre diverses informations sur les Mac.

At0mic
la source
Je ne sais pas pourquoi cela a été rejeté. Ceci est une application gratuite et très utile. Trouvez simplement le modèle, allez dans l'onglet Général, et il vous dira exactement ce que vous voulez.
Hefewe1zen