x86 jádra (Zen 3) jsou proporčně bližší malým (než velkým) ARM jádrům Apple M1
Minule jsme si shrnuli výsledky z PassMarku. SoC Apple M1 sice dosahuje o něco lepšího jednojádrového výkonu než 15W APU Cezanne / Ryzen 7 5800U, ovšem při vytížení všech osmi jader je výkon nižší a stejně tak v dílčích testech se M1 vede podobně, v průměru o desítky procent hůř než zmíněnému Zenu.
V diskuzi pod touto zprávou se opakovaně objevoval názor, že polovina jader M1 je malých a tudíž srovnání s APU Cezanne není objektivní.
V první řadě je potřeba říct, že konfigurace jader je strategické rozhodnutí výrobce, které učinil sám o vlastní vůli. Pokud dva výrobci připraví čip pro ULV segment, je na jejich uvážení, jakou konfiguraci zvolit, aby se vešli do limitů TDP a zároveň nabídli co nejvyšší výkon a také cenu, kterou jim budou uživatelé ochotni zaplatit. Jestli použijí jedno jádro vyplňující většinu čipu, nebo stovku mini-jader, je z hlediska uživatele jedno - pro uživatele je podstatný výkon, cena a spotřeba (která může jít z tohoto srovnání stranou, neboť je na podobné úrovni).
Apple M1 SoC, zdroj: Anandtech
Za druhé - pokud má probíhat diskuze o „velkých“ a „malých“ jádrech, je bezpodmínečně nutné si nejprve definovat, co je to „velké“ jádro a co je to „malé“ jádro. V opačném případě totiž může nastat drobné faux pas. To je právě případ omlouvání výkonu Apple M1 faktem, že polovina jader je „malých“. Vzhledem k tomu, že máme k dispozici snímek jádra Apple M1 a známe jeho plochu a stejně tak máme k dispozici snímek jádra Zen 3 a známe jeho plochu - a navíc známe i výrobní procesy obou a vzájemné vztahy mezi nimi - si snadno dopočteme, jak jsou vlastně ta jádra „malá“ nebo „velká“.
Porovnávat můžeme buďto v přepočtu na tranzistory, nebo v přepočtu na plochu na stejný výrobní proces (normalizované srovnání). Pro lepší názornost jsem zvolil druhou možnost, neboť plocha (přepočtená na 7nm proces) je asi pro většinu čtenářů snáze představitelná.
Následující čísla uvádějí plochu jader včetně L1 a L2 cache a jejich propojení:
- Apple M1 (4+4 jádra) = 39,5 mm²
- AMD Zen 3 (8 jader) = 31,0 mm²
Již z tohoto základního srovnání je patrné, že čtyři „velká“ plus čtyři „malá“ jádra z Apple M1 jsou ve skutečnosti větší než 8 „velkých“ jader Zen 3. „Malá“ jádra Applu zjevně nejsou až tak malá, jak by se mohlo zdát a „velká“ x86 jádra nejsou až tak velká, jak by se mohlo zdát. Jak to tedy je:
- 4 „malá“ jádra Icestorm M1 = 11,0 mm²
- 4 „velká“ jádra Firestorm M1 = 28,5 mm²
- 4 x86 jádra AMD Zen 3 = 15,5 mm².
x86 jádro Zen 3 jsou tedy podstatně bližší „malým“ jádrům Apple Icestorm než „velkým“ jádrům Apple Firestorm. Na plochu 4 jader Firestorm by se vešlo téměř celých 8 jader Zen 3. Pokud tedy srovnáváme výkon SoC Apple M1 a výkon APU AMD Cezanne, není rozhodně Apple znevýhodněn tím, že polovina jader je „malých“. Naopak konfigurace zvolená Applem využívá o zhruba 27,5 % více tranzistorů. 4 „malá“ jádra jsou v podstatě navíc.
Apple tedy v rámci SoC M1 věnoval procesorovým jádrům o desítky procent více tranzistorů než AMD v Zen 3 (což je logické s ohledem na fakt, že M1 cílil na 5nm proces, kdežto Zen 3 si musel v době svého vydání vystačit se 7nm). Velká jádra v M1 jsou téměř 2× větší než x86 jádra Zen 3. Vyšší IPC tedy není žádná magie, jde o důsledek daleko vyššího rozpočtu tranzistorů. Zároveň tak velké jádro nelze v rámci ULV produktu provozovat na nijak vysoké frekvenci (dostalo by se rychle mimo mantinely TDP), takže je vyšší IPC na druhé straně kompenzováno nižšími takty.
Nelze si tedy představovat, že pokud je řeč o ARM architektuře, jde automaticky o malá úsporná jádra (což byla pravda dříve), kterým v posledních letech nějakou záhadou stouplo IPC. Tou záhadou není nic jiného než spousta tranzistorů, kterou výrobci procesorů ARM jader tomuto navýšení IPC věnovali - v kombinaci s o generaci novějším výrobním procesem, aby spotřebu takového řešení dostali do cíleného energetického rozpočtu.