CPU

Architettura, NUMA e Game Mode

Pagina 3: Architettura, NUMA e Game Mode

Come in passato il die Zeppelin, sebbene con alcuni miglioramenti, serve come blocco principale di Threadripper 2. Anche se abbiamo coperto alcuni dei miglioramenti più importanti, la sezione del 2950X riprende alcuni dettagli dell'architettura noti dai modelli Threadripper di prima generazione. Se avete già familiarità con l'architettura Threadripper e siete più interessati al design radicalmente nuovo del 2990WX, saltate a quella sezione.

Tutto parte con Zeppelin

cpu complex
Com'è fatto un CCX – clicca per ingrandire

L'architettura Zen usa un blocco base, detto CCX o CPU Complex, con quattro core. Ogni CCX ha 8 MB di cache L3 suddivisi in quattro parti: ogni core nel CCX accede a tutte le parti di cache L3 con la stessa latenza media. Due CCX creano insieme, comunicando tramite Infinity Fabric, un die Zeppelin a 8 core. I CCX condividono lo stesso controller di memoria dual-channel. Ci troviamo quindi davanti a due CPU quad-core che parlano tra loro mediante l'interconnessione Infinity Fabric che gestisce anche il traffico di northbridge e PCIe.

die zeppelin
Die Zeppelin, clicca per ingrandire

Anche se ogni core in un CCX a quattro core può accedere alla cache locale con la medesima latenza media, il viaggio per recuperare i dati nei CCX adiacenti porta a una penalità per quanto la latenza. A soffrire è anche la comunicazione tra i thread sui core posti in CCX diversi.

Processo 12nm LP

I processori Threadripper 2 non sono prodotti con il processo 14nm GPP di Globalfoundries, ma piuttosto sono realizzati con i 12nm LP della medesima fonderia. Questo permette di aumentare le prestazioni dei transistor, ma non impatta sull'area occupata dal die o la densità dei transistor. Di conseguenza ritroviamo un die Zeppelin con un'area di 213 mm2 e circa 4,8 miliardi di transistor – gli stessi dei Ryzen di prima generazione. I modelli X a doppio die hanno un totale di 9,6 miliardi di transistor e occupano 426 mm2, mentre la serie WX quad-die conta 19,2 miliardi di transistor e 815 mm2.

processo
Clicca per ingrandire

Una minore dispersione di corrente permette frequenze di 200 MHz più alte o una riduzione della tensione di core di 80-120mV a qualsiasi livello di frequenza rispetto ai 14 nm. L'azienda ha anche rifinito alcuni percorsi critici dell'architettura usando transistor con prestazioni maggiori.

latenza
Clicca per ingrandire

Complessivamente AMD afferma che il progetto a 12 nm permette un consumo fino all'11% inferiore rispetto ai Threadripper a 14 nm con la stessa frequenza o fino al 16% di prestazioni in più con lo stesso TDP. AMD ha anche fatto ulteriori cambiamenti, riducendo la latenza delle cache (L1 del 15%, L2 del 9% e L3 dell'8%) e riducendo la latenza della memoria (2%).

Architettura Ryzen Threadripper 2950X e Game Mode

Threadripper 2950X segue il design standard creato per i modelli di prima generazione. Due die Zeppelin sono connessi tramite un altro layer di Infinity Fabric. AMD inserisce sul package due die non attivi, dei riempitivi non funzionanti che assicurano l'integrità strutturale dell'heatspreader e un accoppiamento adeguato con i pin del socket. Senza questi die, l'IHS si piegherebbe fissando il dissipatore oppure il chip potrebbe piegarsi e non fare pieno contatto con i pin.

fabric
Clicca per ingrandire

Ricordate, ogni die Zeppelin ha i propri controller di memoria e PCIe. Se un thread in funzione su un core necessita di accedere ai dati residenti nella cache su un altro die, deve attraversare l'interconnessione tra quei die e incappare in una latenza significativa. Naturalmente il penalty di latenza tra i die è maggiore di quello tra i CCX nelle configurazioni a singolo die. AMD ha fatto comunque alcuni miglioramenti. Il 2950X ha una latenza di 64ns con la memoria più vicina e 105ns con quella più lontana, mentre il 1950X faceva segnare rispettivamente 78 e 133 ns.

die 2950x

Per combattere la potenziale possibilità di un calo delle prestazioni, AMD ha pensato a un'interessante soluzione: ha introdotto un nuovo switch per l'accesso alla memoria che potete attivare dal BIOS della motherboard o il software Ryzen Master. Le impostazioni Local e Distributed possono passare tra le impostazioni NUMA (Non-Uniform Memory Access) o UMA (Uniform Memory Access).

mode
Clicca per ingrandire
mode1
Clicca per ingrandire

AMD vi permette anche di disattivare core in modalità "legacy", cosa che disabilita un die tramite un comando Windows. Questo consente ad alcuni programmi che non gestiscono 32 thread di funzionare correttamente, e nel frattempo viene eliminata anche la comunicazione tra i die. Il sistema può comunque accedere all'I/O connessa al secondo die, in modo da non perdere la memoria associata o funzioni di connettività.

numa
Clicca per ingrandire

UMA (Distributed) è piuttosto semplice: permette a entrambi i die di accedere a tutta la memoria collegata. La modalità NUMA (Local) cerca di mantenere tutti i dati per il processo in esecuzione sul die confinato al controller di memoria collegato direttamente, stabilendo così un nodo NUMA per die. L'obiettivo è minimizzare le richieste alla memoria collegata sull'altro die.

uma
Clicca per ingrandire

La modalità NUMA funziona meglio se i software sono progettati specificatamente per usarla. Anche se la maggior parte dei software non è stata scritta con NUMA in mente, sono comunque possibili miglioramenti prestazionali in software non NUMA.

uma vs numa
Clicca per ingrandire
game mode
Clicca per ingrandire

AMD ha definito un insieme predeterminato di interruttori che in genere offre le migliori prestazioni in giochi e software. La Game Mode disabilita metà chip con lo switch legacy e fa passare il 2950X in una modalità di memoria locale, creando così un processore a 8 core e 16 thread. La Creator Mode usa l'impostazione di memoria distribuita e disabilita la modalità legacy, cosa che consente l'accesso alla piena potenza dei 16 core e 32 thread per i carichi di produttività.

Architettura Ryzen Threadripper 2990WX

Il design di Threadripper 2990WX nasce da quello dei processori server EPYC ed è figlio di quattro die attivi. AMD ha fuso i controller PCIe e di memoria da due die, creando così die "di calcolo", mentre gli altri due "die di I/O" offrono il normale complemento di un controller di memoria dual-channel e 32 linee PCIe. Sfortunatamente il die di calcolo soffrirà di una latenza maggiore per ogni richiesta alla memoria principale e ai dispositivi PCIe, in quanto quelle richieste dovranno sempre passare dal core gemello, quindi tramite Infinity Fabric.

fabric 2
Clicca per ingrandire

AMD ha aggiunto più canali alla topologia per collegare i due die in più, ma questo ha un impatto tremendo sul bandwidth dell'interconnessione, che scende da 50 Gbps a 25 Gbps. Come al solito la velocità di Infinity Fabric è legata al controller di memoria, quindi una frequenza di memoria maggiore aumenta le prestazioni dell'interconnessione (e la differenza, in alcuni casi, è enorme).

die 2990wx

AMD ha di nuovo misurato le prestazioni con una frequenza di memoria a 1600 MHz, il che significa che il throughput dell'interconnessione con la memoria DDR4-2933 raccomandata sarà inferiore. Anche con i benefici di un attento scheduling per quanto riguarda l'interconnessione, la combinazione di un bandwidth ridotto e 32 thread che devono comunicare sull'interconnessione per l'I/O e le richieste di memoria ha un impatto tremendo sulle prestazioni.

Il traffico aumentato e il throughput ridotto dell'interconnessione avranno un impatto tangibile sui software affamati di memoria e porteranno a un ridimensionamento dello scaling prestazionale in molte condizioni. Il Threadripper 2990WX è chiaramente destinato al mercato semi-professionale, ma le implementazioni multi-GPU potrebbero soffrire per via della maggiore latenza dell'interconnessione e il throughput ridotto verso le linee PCIe remote. Ciò avrà un impatto anche sulle prestazioni dell'archiviazione PCIe M.2 e i dispositivi LAN connessi al die remoto.

msi meg creation

Il diagramma della motherboard MEG Creation di MSI ci permette di ricapitolare bene la suddivisione della connettività tra i die. Dovrete tenere a mente nuove regole per il popolamento, come l'inserimento della prima GPU nello slot PCIe quattro, insieme a consigli personalizzati di popolamento degli slot M.2. Dovrete popolare tutti e quattro i canali DRAM o seguire il popolamento dual-channel per avere le massime prestazioni, in quanto le prestazioni scendono nettamente in alcune configurazioni DIMM dual-channel a causa del progetto distribuito.

Threadripper 2990WX è suddiviso in quattro domini NUMA e non è prevista la modalità UMA. Di conseguenza il processore non ha un interruttore locale di memoria per la Game Mode, aspetto che indica più di tutti che non è un progetto destinato al solo gaming. Invece il processore semplicemente passa in una modalità "1/4" che disabilita tutto eccetto un die e crea effettivamente un processore con 8 core e 16 thread. Ryzen Master ha inoltre opzioni "1/2" e "Off" che espongono rispettivamente 16 core e 32 thread o la configurazione completa con 32 core e 64 thread.

AMD non può abilitare i controller di memoria e di I/O sui die di calcolo, nemmeno parzialmente, senza una significativa riprogettazione dell'instradamento delle tracce sul package, cosa che a sua volta richiederebbe un nuovo socket, perdendo il vantaggio di compatibilità intergenerazionale che offre nei confronti di Intel. 

L'azienda continua a lavorare con Microsoft per migliorare il suo scheduler per indirizzare i thread anzitutto al die con la memoria collegata, e poi riversare i thread rimanenti sui die di calcolo. Sfortunatamente lo scheduler oggi tratta tutti i die in modo uguale e di conseguenza anche i software che sfruttano meno i thread possono soffrire di alta latenza di memoria e basso throughput. Questo è ulteriormente complicato dalla migrazione dei thread. Secondo AMD, Microsoft non si è impegnata a fissare tempistiche di aggiornamento dello scheduler.