Apple ha presentato i primi dispositivi basati su chip M3 il 31 ottobre 2023. La famiglia dei più recenti SoC Apple Silicon include i modelli M3, M3 Pro e M3 Max, che rappresentano una versione potenziata del chip M2, con più transistor, un’architettura rinnovata e ottimizzazioni sull’uso della memoria.
Durante l’evento Scary Fast di fine ottobre scorso, la Mela ha presentato anche il nuovo MacBook Pro con chip M3, che offre una GPU ultra performante, una CPU potente e supporto per fino a 128 GB di memoria. I tecnici dell’azienda guidata da Tim Cook hanno inoltre posto l’accento sul nuovo iMac 24″: anch’esso costruito intorno al chip M3, che offre prestazioni fino a 2 volte migliori rispetto al modello di generazione precedente con chip M1.
Ma quali sono le principali differenze tra chip M3 e i SoC delle precedenti generazioni, M1 e M2?
Apple Silicon: differenze tra chip M3 e SoC M1/M2
Una delle differenze più evidenti tra i SoC Apple M3 e quelli di generazione precedente risiede nella dimensione del cluster. Mentre i chip M1 e M2 organizzano i core della CPU in cluster da 2 o 4 unità, i chip M3 (specialmente M3 Pro e M3 Max) presentano cluster composti da 4 o addirittura 6 core. Questa scelta porta con sé una serie di valutazioni da fare al momento della scelta del chip più adatto alle specifiche esigenze di ciascun utente. La gestione dei thread da parte di macOS, in relazione alla priorità, diventa cruciale e influenza sia le prestazioni che il consumo energetico.
I tecnici di “The Eclectic Light Company” sviluppano alcune soluzioni, come il software Viable, che permettono di eseguire macchine virtuali su macOS Apple Silicon. Questa volta gli esperti si sono concentrati su una prima analisi del comportamento e dei cambiamenti apportati sui chip M3 dagli ingegneri Apple.
Core E: frequenze e priorità
I core E negli M3 Pro mostrano miglioramenti in termini di frequenza massima, raggiungendo i 2748 MHz rispetto ai 2064 MHz degli M1. Tuttavia, la gestione delle frequenze durante l’esecuzione di thread a bassa priorità appare diversa: i core E degli M3 Pro lavorano a 744 MHz, una frequenza significativamente più contenuta rispetto ai 972 MHz degli M1 Pro. La priorità dei thread diventa quindi un fattore determinante nelle prestazioni: i core E, infatti, gestiscono le attività considerate a priorità elevata alla loro massima frequenza.
In generale, i core E degli M3 appaiono simili a quelli dell’M1, ma hanno una frequenza massima più elevata e lavorano a una velocità di clock inferiore per le attività in background.
Core P: frequenze più elevate e miglioramenti prestazionali
Le differenze nei core P sono evidenti, con gli M3 Pro che raggiungono una frequenza massima di 4056 MHz rispetto ai 3228 MHz degli M1. Questo si traduce in miglioramenti significativi nelle elaborazioni che coinvolgono numeri interi e in virgola mobile. Il balzo in avanti sul piano delle performance si riconosce, in particolare, nelle operazioni vettoriali utilizzando NEON o la libreria Accelerate di Apple.
NEON è un set di istruzioni di tipo SIMD (Single Instruction, Multiple Data) progettato da ARM, l’architettura su cui si basano i chip Apple Silicon. Le istruzioni SIMD consentono di eseguire la stessa operazione su più dati simultaneamente, migliorando notevolmente le prestazioni in operazioni intensive in termini di dati, come quelle coinvolte nel calcolo vettoriale e nelle elaborazioni grafiche.
La progettazione migliorata dell’unità NEON che si trova nei core P dei chip M3 è il motore che ottimizza le prestazioni di calcolo vettoriale e il funzionamento della applicazioni multimediali (utilissima per accelerare operazioni come il trattamento delle immagini, la grafica 3D e la decodifica video).
La libreria Accelerate di Apple fornisce un insieme di funzioni altamente ottimizzate per eseguire operazioni complesse e intensive in termini di calcoli su dati numerici. Queste funzioni sono scritte in linguaggio Assembly e altamente ottimizzate per sfruttare appieno le capacità hardware dei chip Apple.
Le performance dei core P ed E nella gestione di carichi di lavoro elevati
Tenendo da parte i netti miglioramenti nelle elaborazioni vettoriali che caratterizzano i core M3, i nuovi chip fanno registrare modelli prestazionali differenti quando si trovano sotto carico.
Per verificare le prestazioni, “The Eclectic Light Company” ha utilizzato l’utilità AsmAttic che esegue una serie di cicli che effettuano calcoli in virgola mobile, accedendo solo ai registri e non alla memoria. Ogni thread esegue 200 milioni di cicli di codice assembly e ciascun core è sollecitato al 100%.
Throughput dei core P
Esaminando il primo grafico riportato in questa pagina, si osserva quanto segue:
- Per l’M1 Pro (linea rossa) il comportamento è quasi perfettamente lineare, con ciascun thread che occupa completamente un core per un periodo di 1,3 secondi.
- Nel caso dell’M3 Pro (linea nera) i primi 6 thread sono eseguiti sui core P, poi su un numero crescente di core E. La relazione è abbastanza lineare fino a 6 thread, con un tempo significativamente inferiore rispetto all’M1 Pro.
Da 6 a 8 thread, le due linee si muovono parallelamente, indicando che i core E dell’M3 Pro offrono prestazioni simili ai core P dell’M1 Pro.
Throughput dei core E
Il grafico successivo riguarda l’esecuzione di thread a bassa priorità sui core E, con il confronto tra i 2 core E dell’M1 Pro e i 6 core E dell’M3 Pro:
- Per l’M1 Pro (linea rossa), la frequenza dei core E aumenta quando eseguono un secondo thread, spiegando la leggera variazione nel tempo totale da 1 a 2 thread. Tuttavia, con più di 2 thread, i thread successivi vengono messi in coda e le prestazioni ne risentono.
- Per l’M3 Pro (linea nera), i 6 core E hanno una capacità tripla nella gestione dei thread di background. Anche se eseguiti più lentamente, gestiscono fino a 6 thread. Oltre questo numero i thread sono automaticamente messi in coda e il tempo necessario per completarli aumenta più rapidamente.
Conclusioni
L’analisi mette in luce modelli distinti nelle prestazioni dei core P ed E, evidenziati durante i test di carico con applicazioni come AsmAttic. Gli M3 Pro mostrano un notevole miglioramento nelle prestazioni quando più thread sono in esecuzione, sfruttando una combinazione di core P ed E in modo più efficiente rispetto agli M1.
In conclusione, la transizione ai chip M3 rappresenta un passo significativo nell’evoluzione della linea Apple Silicon. Le differenze nelle dimensioni dei cluster, nelle frequenze dei core e nei miglioramenti di progettazione si traducono in un’esperienza utente migliorata. Tuttavia, l’impatto effettivo su scenari reali richiederà ulteriori analisi e test.
Guardando al futuro, sarà interessante vedere come Apple ottimizzerà ulteriormente l’integrazione hardware e software per fornire prestazioni ancora più sorprendenti.