Jak rozpoznać, którego procesora używa MacBook?

28

Chciałbym określić, jakiego procesora używa ten notebook, pod względem nazw kodowych, takich jak „Ivy Bridge” i „Haswell”. Małe logo Apple w lewym górnym rogu pokazuje niektóre informacje, ale nie to.

DarenW
źródło
2
Jak dotąd żadna z odpowiedzi nie mówi mi z całą pewnością, czym jest mój procesor, poza numerem kodu. Nawet spojrzenie na procesor w firmie Intel nie daje „rodziny”. Tylko Mactracker i Everymac nawet zgadują, a między nimi może być dowolne z 5 ... lub nie, ponieważ mój rzeczywisty procesor nigdy nie został sprzedany w nowym komputerze Mac - procesor Intel Xeon® X5690 @ 3,47 GHz
Tetsujin
2
@Tetsujin: google x5690 wikipedia, a zobaczysz, że jest to procesor mikroarchitektury Westmere . (zmniejszają się Nehalem z identyczną wydajnością, ale dodają nowe instrukcje AES i mnożą się w przypadku szyfrowania).
Peter Cordes
2
@PeterCordes - na pewno. I rzeczywiście wiedzą, że jest to maszyna Westmere, ale moim głównym punktem było to, że żadna z odpowiedzi tak daleko powie mi, że bez odrobiny Google-Fu z własną rękę, więc nie właściwie odpowiedzieć na pytanie OP jest per se.
Tetsujin
1
@Tetsujin: good point; jest to jeden z tych przypadków, w których ludzie znający odpowiedź zapominają, że nie jest to oczywiste dla ludzi, którzy nie wiedzą. Dodałem odpowiedź obejmującą krok 2.
Peter Cordes
i jest to również doskonała odpowiedź.
Tetsujin

Odpowiedzi:

39

Po pierwsze, nie uzyskasz nazwy mikroarchitektury procesora (Broadwell, Sandy Lake, Ivy Bridge itp.), Ponieważ nie jest to znaczący schemat brandingu dla procesorów Intel. W przeciwieństwie do Apple, dział marketingu decyduje się aktywnie sprzedawać nazwy kodowe swoich systemów operacyjnych (Mavericks, Yosemite, El Capitan). To konwencja marketingowa, a nie techniczna.

Aby wyświetlić listę wszystkich procesorów Intel oraz ich nazwy kodowe, architektury i specyfikacje, lista mikroprocesorów Intel firmy Wikipedia ma dobrą stronę.

Aby odpowiedzieć na to pytanie, przedstawię trzy metody, aby dowiedzieć się, jaki masz procesor, pierwsze dwie, które powinny być dobre dla większości użytkowników, oraz trzecią metodę, w której możesz określić numer mikroarchitektury , abyś mógł spojrzeć na stronie pomocy technicznej Intela. Możesz „przeskoczyć” do sekcji, która Cię dotyczy.

  1. Informacje o tym komputerze Mac (ogólne informacje o procesorze)
  2. Profil systemu (ogólne informacje o procesorze)
  3. Terminal (szczegółowe informacje o procesorze)


O tym komputerze Mac

Klikając symbol Apple u góry ekranu, wybierz Informacje o tym komputerze Mac

wprowadź opis zdjęcia tutaj

Pojawi się ekran z przeglądem systemu. Twój procesor zostanie wymieniony tutaj.

wprowadź opis zdjęcia tutaj


Profil systemu

Kliknięcie przycisku oznaczonego Raportem systemu ... (zielona strzałka) powoduje wyświetlenie pełnego profilu systemu. Na pierwszej stronie znajdziesz bardziej szczegółowe informacje o urządzeniu, w tym informacje o procesorze

wprowadź opis zdjęcia tutaj

Terminal

Ogólnie jestem fanem terminalu. Dostęp do prawie wszystkiego, co widzisz w GUI w OS X, można uzyskać szybciej i dokładniej za pomocą wiersza poleceń IMHO.

Aby uzyskać dokładny model procesora, w tym numer mikroarchitektury, w terminalu wykonaj następujące polecenie:

sysctl -n machdep.cpu.brand_string

Otrzymasz dokładnie ten procesor, którego używasz. Na przykład na moim komputerze iMac powyższe polecenie odpowiada:

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

Następnie możesz wyszukać i7-3770 i pobrać nazwę kodową i specyfikację.

Dla porównania możesz użyć polecenia Terminal:

system_profiler SPHardwareDataType

i uzyskam wynik, który wygląda jak ekran, który zamieściłem w drugiej sekcji, Profil systemu :

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

(Kredyt dla dante12 poniżej)

Jeśli więc potrzebujesz procesora lub częściej identyfikatora modelu , możesz użyć tego samego polecenia w połączeniu z grep .

system_profiler SPHardwareDataType | grep Identifier

Odpowiada za pomocą

  Model Identifier: iMac13,2
Allan
źródło
11
Spośród wszystkich opcji, które udostępniasz, tylko metoda terminalu powie ci architekturę zgodnie z żądaniem w pytaniu, chyba że coś mi brakuje.
Bob
3
@ Bob chyba że czegoś mi brakuje, nie mogę dostrzec architektury w żadnej z opcji. (poza tym, że ark.intel.comjest w stanie mi to powiedzieć po spojrzeniu w górę i7-3770)
Num Lock
4
@NumLock Och, nie należy oczekiwać nazwy architektury (nie sądzę, że CPU faktycznie zgłasza się jako nazwa kodowa, więc system operacyjny musiałby utrzymywać aktualną bazę danych ...). Numer modelu wystarczy, aby łatwo i jednoznacznie zidentyfikować architekturę, więc liczy się IMO. Ale opcje nieterminalne tutaj nawet nie podają numeru modelu; próba odgadnięcia, który to procesor (i jego wydajność, wydajność itp.) na podstawie liczby rdzeni i szybkości taktowania (czy jest to taktowanie podstawowe, czy maksymalne zwiększenie turbo?) jest niedokładna i ogólnie jest złym pomysłem.
Bob
1
Opcja terminalu jest jedyną przydatną rzeczą w tej odpowiedzi. Gdybym zapytał kogoś, na jakim procesorze testują, a powiedziałby „Core i7”, wiedziałbym tylko, że był to Nehalem (2008) lub nowszy. Istnieją ogromne różnice między Nehalem i Sandybridge oraz ważne różnice między SnB, Haswell i Skylake. Powinieneś usunąć inne opcje, aby nie zachęcać ludzi do udzielania bezużytecznych odpowiedzi, gdy ludzie pytają ich, co ma mikroarchitektura w procesorze. Numer modelu jest świetny, ponieważ na pierwszy rzut oka możesz stwierdzić, co to jest mikroarcha, lub google, aby uzyskać szczegółowe informacje.
Peter Cordes
4
Nadal sugerujesz dwie bezużyteczne metody, które nie podają numeru modelu, tylko „i7”, i sugerujesz je jako pierwsze. Nie wyjaśniasz, że terminal jest jedynym, który pozwala odpowiedzieć na pytanie PO. Wydaje się, że „About” i „System Profiler” to tylko strata czasu. Co gorsza, czerwona strzałka wskazująca „informacje o procesorze” sugeruje, że „Core i7” jest prawidłową odpowiedzią na pytanie „jaka mikroarchitektura mam”. Szkoda, że ​​nie ma interfejsu GUI, który daje zadowalającą odpowiedź, ale nie ma.
Peter Cordes
10

Otwórz terminal i wpisz lub skopiuj i wklej następujące polecenia

system_profiler SPHardwareDataType | grep Processor

lub

system_profiler SPHardwareDataType

lub

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

Znalazłem też fajny skrypt na Github (dzięki @ rbanffy ):

open http://www.google.com/?q=$(sysctl -n machdep.cpu.brand_string 
                              | awk '{FS=" " ; print $2 "+" $3 "+" $4}')+site:ark.intel.com
dante12
źródło
Dziękuję, $ sysctl -a | grep \.features\: | fmt -w 48polecenie pomogło mi w wyjściu flag procesora.
spacyfikuj
5

CPU ma własny ciąg numeryczny model zbudowany w. Program można uruchomić z CPUIDinstrukcją z odpowiednimi parametrami, aby skopiować ciąg do rejestrów. Ciąg będzie podobny do „ Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz”. Możesz go pobrać z wiersza poleceń za pomocą

sysctl -n machdep.cpu.brand_string

Właściwie nie znam OS X. Odpowiadam na to pytanie jako osoba, która często jest sfrustrowana wynikami testów porównawczych w odpowiedziach SO, które nie wspominają o sprzęcie. W Linuksie niektóre dystrybucje są wysyłane lscpui / lub x86info, ale żadne z nich nie dekoduje też numeru modelu na kryptonim Intela. Liczby są zgodne ze wzorem, więc dekodowanie jest dość łatwe (patrz poniżej).

Żadna z istniejących odpowiedzi nie wspomniała o żadnej metodzie GUI, która podaje numer modelu. Wszystkie metody GUI pokazują tylko „Core i7”, co nie jest prawie wystarczające. Nie mów ludziom, że masz „rdzeń i7”, ponieważ to tylko marnuje czas każdego .

„i7” może być czymkolwiek, od Nehalem do Skylake. Istnieją ogromne różnice między Nehalem i Sandybridge oraz ważne różnice między SnB, Haswell i Skylake.


Jeśli ktoś zapyta cię, na jakiej mikroarchitekturze uruchomiłeś test porównawczy , ciąg modelowy z tego jest świetną odpowiedzią zawierającą więcej informacji niż tylko nazwę mikroarchitektury, więc po prostu skopiuj go i wklej do niego (np. „I7-3770 CPU @ 3.40GHz”).

Większość osób, które cię pytają, będzie wiedziała, jak dekodować numery modeli, więc nie czuję się tak, jakbyś musiał je streszczać lub szukać. Wolałbym, żeby ktoś skopiował / wkleił dokładny numer modelu, ponieważ mogę go znaleźć w Google, aby znaleźć szczegóły, takie jak rozmiar pamięci podręcznej. ( http://ark.intel.com/ ma stronę dla każdego modelu, a te zwykle pojawiają się wysoko w wynikach wyszukiwania Google. Jednak te nie używają nazw kodowych).

Każda mikroarchitektura ma modele „Pentium” i „Celeron”, ale mają one wyłączone AVX, więc ludzie używają ich tylko do maszyn o bardzo niskim budżecie.

Wyjątkiem są tutaj procesory „i7 extreme”. np. i7-5960X wciąż jest Haswellem, ale ma 8 rdzeni (16 hyperthreadów) z pamięcią czterokanałową. IDK, jeśli Apple sprzedaje maszyny z takimi procesorami.

Wikipedia ma doskonałe tabele numerów modeli dla każdej mikroarchitektury. np. możesz google wikipedia w Google x5690, aby szybko stwierdzić, że Xeon X5690 jest procesorem architektury Westmere .


Aby dowiedzieć się więcej o różnicach między rurociągami różnych mikroarchitektur , zobacz artykuły takie jak ten Ars Technica o Haswell . Nawet artykuły z Wikipedii nie są złe.

Aby uzyskać bardziej techniczny punkt widzenia architektury procesora, zobacz doskonałe recenzje Sandybridge i Haswell Davida Kantera .

Mikroarchitektura PDF Agner Fog jest doskonała, jeśli analizujesz / dostrajasz język asemblera (lub dane wyjściowe kompilatora), np. Próbujesz zrozumieć liczniki perf.

Podręczniki optymalizacji Intela i AMD również zawierają pewne szczegóły mikroarchitektoniczne, ale nie zawsze wyjaśniają swoje sugestie dotyczące optymalizacji asm z analizą działania mikroarchitektury. Dlatego wolę przewodnik Agner Fog.

Zobacz także wiki tagover Stackoverflow x86 , które znacznie rozszerzyłem / ulepszyłem w ubiegłym roku.

Peter Cordes
źródło
1
Również więcej (nieco nieaktualne) informacji tutaj . Prawdopodobnie możesz uzyskać numery rodziny / modelu / steppingu, sysctlale nie mam komputera Mac, aby to wypróbować.
Bob
2

gcc lub clang -march=nativemoże wydrukować dla ciebie kryptonim , ponieważ nazwy opcji strojenia pasują do nazw kodowych uarch Intela (np -march=sandybridge.). Dla AMD: -march=bdver2= Piledriver = Bulldozer wersja 2.

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

Na moich wydruków systemu Linux Core2: target-cpu core2. Zakładam, że zrobi coś podobnego na OS X.

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

w moim systemie Linux Core2 drukuje:

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

To polecenie kompiluje się /dev/nulljako 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 = cokolwiek -mmmx-msse2 ... `opcje.

grep -odrukuje tylko pasującą część pasujących pasujących linii. \w*dopasowuje 0 lub więcej znaków słów.


Potrzebujesz wystarczającej nowej wersji clang lub gcc, aby rozpoznać mikroarchitekturę procesora i zmapować ją na kryptonim. Stara wersja gcc wydrukuje coś w stylu -march=core2nawet dla Haswella i -mtune=inteltak dalej.

Innym podobnym podejściem jest filtrowanie danych wyjściowych asm z gcc -fverbose-asm, co obejmuje opcje optymalizacji jako komentarze. Nie znam odpowiednika clang.

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

arch=core2

Działa to w systemie Haswell: zobacz ten przykład w Eksploratorze kompilatorów Godbolt . Zwróć uwagę -march=haswellna wynik.

Peter Cordes
źródło
Ciekawe i raczej nowatorskie podejście! Pytanie: gccczy clangna komputerze Mac (nieprogramowym) można się czegoś spodziewać?
Bob
@Bob: IDK, nawet nie mam komputera Mac! Dostałem się tutaj z paska bocznego „gorących pytań sieciowych”. Wiele programów uniksowych jest rozpowszechnianych w formie źródłowej, więc niektóre osoby będą miały kompilator C na swoim komputerze Mac, nawet jeśli w ogóle nie programujesz lub nie używasz C. (Na przykład niektóre moduły perla są dostarczane z kompilacją C. ) W każdym razie ta odpowiedź była skierowana głównie do osób, które dość regularnie używają gcc lub clang na komputerze Mac, ale nie są ekspertami od sprzętu Intel. Możliwe jest bycie programistą bez bycia maniakiem sprzętu.
Peter Cordes
Myślę, że clangjest dostępna tylko po zainstalowaniu xcode. Oprócz tego wystarczy użyć clangzamiastclang-3.5
Anthony Kong
1

W menu Apple (w lewym górnym rogu ekranu) wybierz Informacje o tym komputerze Mac. Następnie znajdź przycisk z napisem Więcej informacji, otworzy okno WSZYSTKO na temat komputera Mac, w tym jego numer modelu (na przykład MacBook Pro 12.3), a następnie skorzystaj z aplikacji MacTracker wspomnianej powyżej lub po prostu wyszukaj tę nazwę, a otrzymasz te informacje .

Steve Chambers
źródło
1

Przejdź do jednej z witryn uaktualnień komputerów Mac i wprowadź numer seryjny / numer modelu w części Informacje o tym komputerze Mac.

Przykład http://www.everymac.com/ultimate-mac-lookup/

Wpisz numer seryjny

Wprowadź informacje o Catpcha.

Otrzymasz specyfikację podsumowującą

Kliknij Kompletne specyfikacje komputerów Mac.

I powie ci szczegóły chipów (22 nm Haswell i5 4250U) oraz porównania do wcześniejszych i późniejszych modeli.

Gordon Coale
źródło
1

Najlepszym sposobem na znalezienie informacji o procesorze na komputerze Apple jest uruchomienie narzędzia MacCPUID firmy Intel. Możesz go znaleźć tutaj .

Pablo Varela
źródło
0

Istnieje aplikacja na iOS i Mac o nazwie Mactracker . Pokazuje różne informacje o komputerach Mac.

At0mic
źródło
Nie jestem pewien, dlaczego zostało to odrzucone. Jest to darmowa aplikacja i bardzo pomocna. Po prostu znajdź model, przejdź do zakładki Ogólne, a zobaczysz dokładnie, czego chcesz.
Hefewe1zen