"Apple tedy přidal dvě malá jádra (M1 Max měl jen dvě), což o něco zvýší mnohojádrový výkon "
Celý cluster čtyř úsporných jader nemá v součtu výkon ani jednoho velkého jádra, ale má spotřebu jen 1,5W proti cca 4,5W na velké jádro v plné zátěži (M1), takže navýšení o dvě malá jádra moc celkový výkon nezvedne, co to ale mění je úspornost. MacOS v podstatě vše co jede na pozadí nebo má malé požadavky na výkon či nízkou prioritu končí právě na malých jádrech a velká jádra spí. Přesně obráceně se chovají W11 a Intel hybridní architektura, kdy zátěšž primárně směřuje na velká jádra a spí malá. Když na macu v prohlížeči třeba načtu YT tak na to načtení a vyrenderování ťukne do nějakého výkonného jádra, ale jakmile je načteno a video běží, tak už žádnou aktivitu velká jádra neprovádí a běží to celé na malých s bezvýznamnou spotřebou.
U dvou malých jader tak daleko rychleji dojde k potřebě šáhnout na velké jádro než když budou 4. To je vlastně zklamání Macbooků Pro s M1 Pro a Max, že i přes daleko větší baterii mají kratší výdrž než Pro s M1 a Air, byť samozřejmě z nemalé části se na spotřebě podílí větší a náročnější displej, i když na druhou stranu s LPTO může být ve finále úspornější než menší displeje s fixními 60Hz
To co je jasnym kvalitativnim prinosem (unifikovana pamet CPU a GPU) pri heterogennich vypocetech se pri vetsim skalovani diky problemu alokace sdilenych zdroju muze ukazat pasti. Rozsirovani sire sbernic sice zvedne bandwidth, ale neovlivni latence. Jiz M1 Ultra byla udajne navrzena na propojeni dvou SoC, ale vysledky pry znacne zaostaly za ocekavanimi. Mozna proto to zpozdeni v uvedeni Mac Pro (dokonceni prechodu na Apple Sillicon). Z ohlaseneho dvouleteho prechodu na Apple Silicon tak budou asi nejspis 3+ roky.
https://www.apple.com/pl/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/
Prvni M1 Mac prisel na konci roku 2020 (listopad), takze 3+ roky to pravdepodobne nebudou. Mac Pro postaveny na M1 byl udajne pripraven na leto 2022, nakonec se ale rozhodli jej osadit az M2, mozna opravdu z vykonostnich duvodu, a nebo jej nechteli osadit architekturou (M1), ktera prisla jiz v roce 2020.
Ano slepením dvou samostatných celků logicky naroste latence, to je jasné. To víme z praxe několik let které AMD lepí chiplety.
Problém s rychlostí ale u M1 ultra není. Paměti mají u M1 Max propustnost max 400GB/s, spojení mezi dvěmi M1 Max dosahuje propustnosti 2,5TBit/s, 1.25TB/s jedním směrem, tzn teoreticky dokáže posílat data 3x rychleji než je paměť schopná ty data dodat.
Ta propustnost je pro spojení dvou M1 Max naprostý overkill, ale... dá se z toho vytušit že je Apple skutečně připravený na propojení čtyř Max čipů do jednoho, pokud budu mít potřebná data uložená v paměti jednoho ze čtyř Maxů a budu s nimi chtít začít pracovat na zbylých třech, tak ten první Max může přes 1,25TB/s rozhraní plnou rychlostí nakrmit pamět tří Maxů najednou.
Limit rozhraní hypoteticky vyšumí pokud by jeden max plni daty další tři a ty tři ještě chtěly nějak komunikovat mezi sebou, ale v takovém případě by stejně nestačila rychlost pamětí, která je už plně saturována tím přenosem dat z jednoho Maxu.
Pokud jSW zná architekturu a zná její limity a pracuje na úlohách které jdou dobře paralelizovat a nepotřebují vzájemně sdílet nějaký zásadnější objem dat, pak ani ty latence nejsou problém. A vývojáři profesionálních SW pro MacOS nenechávají nic náhodě, mají jen omezené množství konfigurací, takže mohou poměrně efektivně psát na tělo HW a ždímat z něj maximum.
A u toho SW je to myšleno tak, že když jako vývojář vím že potřebuju pustit dvě vlákna s nějakým výpočtem a vím, že si ty vlákna pak vzájemně potřebují předávat vypočtená data aby mohly pokračovat, tak bych se divil že bych neměl možnost porgramově říct, že se ty dvě vlákna takto chovají aby systémový scheduler pro ty procesy prioritizoval přiřazení na jádra v jednom fyzickém čipu aby právě nedocházelo k latencím při předávání dat v RAM různých čipů a hlavně aby bylo možné použít sdílené cache a unifikované paměti, což je klíčové pokud ten proces využívá nejen CPU, ale i GPU, neural engine nebo akcelerátory.
když to napadlo mě coby neznalce vývoje aplikací pro MacOS, tak to jistě napadlo hromadu inženýrů v Apple a hromadu vývojářů, kteří s Apple při vývoji čipů spolupracují.