Apple M1 vs x86

1

Jakiś czas temu miała miejsce premiera komputerów Apple zbudowanych w oparciu o SoC na bazie ARM (M1) zamiast klasycznego intela w architekturze x86.

Chciałbym zasięgnąć opinii osób nieco mocniej zorientowanych na kwestiach stricte powiązanych z hardware'em (RISC vs CICS) w kontekście wydajności.
https://www.purepc.pl/apple-m[...]nch-arm-mocniejsze-od-core-i9

Jak to jest, że mamy 2020r, układy ARM są w powszechnym użytku (czyt. w kieszeni każdego z nas) od lat aż tu nagle okazuje się, że załadowanie pierwszej wersji chipu przeznaczonego do komputerów z miejsca oferuje więcej mocy niż najmocniejsza/jedna z najmocniejszych jednostek intela?
Jak to możliwe, że mądre głowy z intela/AMD/nvidii (wydajność gpu podobno też ma być niesamowita) przez tyle lat same nie zaoferowały takich układów? Przecież w tych firmach pracuje sztab ludzi głowiący się jak zarobić więcej kasy a Apple nie ma technologii z kosmosu.

Inna kwestia która mnie nurtuje to czy te architektury (chociażby za pośrednictwem benchmarków) można od tak porównywać 1:1? Kwestia innego podejścia do instrukcji procesora nie jest tu przypadkiem czynnikiem przez który np. intel nie zdecydował się na produkcję desktopowych chipów na bazie ARM a Apple jest tym kto ma jakieś tam doświadczenie w projektowaniu tego typu układów do smartfonów, wrzuca to do komputera, pokazuje wykresy które nie mają żądnej skali/legendy i wmawia wszem i wobec że są najlepsi?

A może to jednak faktycznie przełom i architektura ARM góruje nad x86 w niemal każdym aspekcie i jest to po prostu droga ewolucji naszych komputerów a firmy pokroju intela za mało wydały na ludzi z wizją i zwyczajnie nie zauważyły, że ich czas się kończy?

8

Mnie raczej nurtuje pytanie - jakim cudem kupowata architektura Intela przetrwała tyle lat.
Zaczęło się od porażki:
https://en.wikipedia.org/wiki/Intel_8008 (w zasadzie był to pierwszy "mikroprocesor 8-mio bitowy")
a potem drogą małych kroków ciągle coś dostawiano. Obecny intel core niby nie ma prawie nic wspólnego z 8008, 8080 czy późniejszym 8086, ale na każdym kroku ewolucji ciągnął trochę (przez kompatybilność) problemy przodków. Były punkty przełomowe (IA-32,Pentium, Intel Core, x64), ale nie było radykalnego "restartu".
ARM też już ma długą historię, ale powstał w czasach (lata 80te) kiedy już troszkę procesorów było na rynku i można było jakieś wnioski wyciągnąć.

Z punktu widzenia programisty asm taki intel to totalny rzyg - ciężko na ten kod patrzeć. Mieszanka rozkazów pochodzących z różnych epok, dziwaczne nazwy rejestrów, totalny brak symetrii itd. (Instrukcja MUL 🤦‍♂️).
ARM to od początku elegancja i symetria (nie wiem czy wszędzie zachowana, ale podstawowe instrukcje takie są). Upraszcza to pisanie kodu... ale i prostsza powinna być konstrukcja procesora.

Ważnym elementem jest np. mniej restrykcyjny model pamięci ARM.. powodujący, że w programach niejawnie pisanych pod x86 mogą objawiać teraz różnego rodzaju race conditions. Nie wiem na ile kompilatory C/C++ to łapią... ale w takiej javie można obserwować inny wynik operacji wielowątkowych pod ARM i Intel (!!!). (Oczywiście - o ile program w javie jest niepoprawnie napisany).
Mniej restrykcji oznacza też więcej potencjalnej mocy z punktu widzenia procesora (mniej "synchronizowania cache", więcej możliwości przestawiania kolejności instrukcji na poziomie procesora)

Niespecjalnie tłumaczy to dlaczego ARMM1 osiąga dobre wyniki na jednym wątku (strzelam, że dzięki symetrii -> prostsza logika -> mniej tranzystorów -> mniej mocy wydzielanej -> można wyższe taktowania osiągnać bez palenia procka).

Piszę to jako laik amator - o procesorach i low level raczej czytam niż naprawdę wiem.
Więc dobrze by było jakby ktoś ogarnięty skorygował błędy.
Btw. miłośnikiem apple to nie jestem... ale w tym przypadku mocno kibicuje, żeby coś z tego wyszło.
Z drugiej strony - już wiele razy wydawało mi się... że Intel doszedł do ściany, nic już z tego nie będzie i zaraz go wygryzą :-). Tak pierwszy raz przy okazji PowerPC (apple też był w to zaangażowany(!)), możliwe, że oddech konkurencji przyczyni się do kolejnego przełomu wydajnościowego u intela (za to bugi w security będą jeszcze bardziej powalające).

0

Intel od dawna nie pokazał nic konkretnego. Jedyne co go utrzymuje przy życiu to kontrakty. Montowane odgórnie w komputerach np dla "e-sportowców" tzw pc master race. Chociaż ostatnio gdy się okazało że AMD 5xxx nawet na poletku single core czytaj CS:GO robią intela jak chcą to może się nawet i to zmienić.
Co do procesorów ARM ja bym pierw poczekał na testy. Mnie ciekawią temperatury macbooka air (posiada tylko pasywne chłodzenie, żadnego wiatraka) i pro pod obciążeniem .
Sam chciałem wziąć nowego macbooka pro 13", z tym że mnie interesowała ulepszona wersja. Tutaj tylko zrobili upgrade podstawowego modelu.

0

Apple już raz zmieniał architekturę, i ma w tym doświadczenie, programów też mniej niż na x86. Intel / AMD jeszcze nie, bo kwestia kompatybilności wstecznej "ubiła" by taki projekt, nie zapominajmy że trzeba by albo emulować x86 (co nie było by takie znowu wydajne) albo też porzucić całe dotychczasowe oprogramowanie na PC i zacząć zupełnie odnowa (co mocno nie spodoba się klientom biznesowym, graczom zresztą też). Zresztą Nvidia kupuje / ła ARM, zapewne nie z troski o rozwój platformy czyli czas raczej przesiadać się nie tylko z X86 ale też i z ARMa na coś innego, najlepiej nie chronionego patentami tak na wszelki wypadek. Windows na ARM zresztą powstał, ale jakoś nikt go nie chce (brak softu).

ps coś mi się obiło kiedyś o oczy że rdzenie x86 mają wbudowanego "tłumacza" na zupełnie inną architekturę, bo bez tego nie dało by się dalej zwiększać wydajności. tak więc może się okazać że tam "pod spodem" coś na kształt ARM-a jest.

6

Wydaje mi się, że sporo robi to, że wszystko jest tam zintegrowane w procesorze (CPU, GPU, pamięć operacyjna, jakieś inne cuda niewidy) - nie trzeba tego jakąś zewnętrzną szyną puszczać, tylko wszystko dzieje się na jednym podwórku. Litografia pewnie też nie jest bez znaczenia (14nm+++++++++ intela kontra jakieś tam naciągane 5nm, ale 5). W kwestii architektury, posiadania odpowiednich instrukcji - to nie wiem jak tu sprawa wygląda (w porównaniu do inteli np) - za cienki w uszach na to jestem, by zabierać głos.

Wiem, że procesory ARM w iPadach Pro (M1 to chyba ich ulepszona wersja) rzeczywiście potrafią, za przeproszeniem, spuścić w kiblu niektóre desktopowce co mają TDP 60 czy 95W w niektórych zastosowaniach, że aż żal na to patrzeć (np. rendering filmów). W pozostałych zastosowaniach - nie wiem. Podobna sytuacja jest np. w przypadku niektórych blockchainów - bitminer to jakieś chińskie grzejniki do liczenia haszy, czyli kopania krypto i w zasadzie tylko i wyłącznie do tego - one z kolei spuszczają w kiblu najmocniejsze GPU (które w to też są niezłe) w tym zastosowaniu. Więc wiele zależy od specjalizacji pod konkretne zadanie.

Geekbench z kolei to największy kłam wśród benchmarków (według mnie, choć nie tylko) - sprawdza "ability" procesorach do jakichś pojedynczych tasków. W geekbenchu, zwyciężyłby np. procesor, który wystarczy, by dał radę pracować max 1 minutę na jakichś mocarnych częstotliwościach typu 5 GHz i tyle. To, że później, spowolniłby do 100 MHz, celem ochłodzenia się, to w GB nie ma żadnego znaczenia, bo nie to jest tam sprawdzane. Innymi słowy Geekbench to jest jak "szacowanie" w ile czasu zawodnik przebiegnie maraton 10 km, na podstawie tego, jak szybko przebiegnął pierwsze 50 m.

Proponuję poczekać na prawdziwe benchmarki i problemy, które wynikną z wprowadzenia tej architektury. Na razie na stole mamy marketing, jakieś przecieki itp - dopóki cały świat się na to nie rzuci, włącznie z badaczami bezpieczeństwa, będzie to owiane tajemnicą.

Disclaimer: też wypowiadam się z racji usera, co głównie czyta/używa, aniżeli projektuje procesory.

5

@sig:

Apple już raz zmieniał architekturę,

To już 4ta architektura w Macintoszach.

  1. Zaczęło się od 68k, który też był eleganckim procesorem i wydawało się, że intel 86 to nawet nie jest w tej samej lidze. 68000 był w zasadzie 32 bitowym procesorem o 16to bitowej szynie danych(odpowiednik poźniejszego 386sx u Intela). Obie linie procesorów miały kolejne generacje (zaskakują podobieństwa). Mimo że motorola startowała z dużo lepszej pozycji to już na etapie
    68040 vs 486 Intel zaczął doganiać wydajnościowo
    Na etapie Pentium vs Motorola 68060 Intel totalnie odjechał i motorola wypadła z gry.
  2. Potem było PowerPC, na które apple się przeniosło ... i które w końcu też odpadło z wyścigu.
  3. A dopiero potem Intel
  4. ... no i teraz ARM
0

Czyli to wygląda na kolejny etap ewolucji tylko musiał znaleźć się ktoś, kto ma jaja żeby wywrócić swój ekosystem do góry nogami (licząc na większe zyski/możliwości w przyszłości) zamiast odgrzewać kotleta/pudrować trupa licząc worki $$ bo przecież cały świat stoi na tej architekturze.

1
sig napisał(a):

nie zapominajmy że trzeba by albo emulować x86 (co nie było by takie znowu wydajne) albo też porzucić całe dotychczasowe oprogramowanie na PC i zacząć zupełnie odnowa (co mocno nie spodoba się klientom biznesowym, graczom zresztą też).

A ile tego kodu faktycznie jest platform-dependent? Teoretycznie wystarczy przeportowac kompilatory. (zdaje sobie sprawe, ze to tez nie takie hop-siup ale to i tak sie dzieje)

EDIT: Gry to akurat bardzo prawdopodobne, ze korzystaja z hakow pod dana platforme zeby optymalizacje wycisnac.

0

ja bym nie ruszal tego co jest dobre Intel Core i Win 10 ;-)

to nie znaczy ze nie kibicuje firma ktore chca robic laptopy na ARM i Linux to tez fajna propozycja

chodzi o to ze od personal computer wymaga sie wiecej niz od smartphone

mam na mysli np programy biurowe czy CAD

tu jest szansa

0

Co masz na myśli pisząc "programy biurowe czy CAD"?
Na chwilę obecną ich nie ma (teoretycznie bo pewnie są jakieś namiastki office na ipada) ale to kwestia upowszechnienia się nowej architektury tzn. nie są one zdaje się (na pewno office) uzależnione od specyficznych własności x86.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0