Test: Infinity Fabric e sottosistema di memoria

I Ryzen Threadripper offrono diverse modalità operative per adattarsi ai giochi di vecchia o nuova concezione. Qual è la modalità migliore per giocare?

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

L'interconnessione a 256 bit Infinity Fabric lega insieme le risorse all'interno del die Zeppelin. L'adozione di un secondo die Zeppelin per creare Threadripper introduce un altro layer di interconnessione. Gli accessi alla cache rimangono locali su ogni CCX, ma una grande quantità di traffico di memoria, I/O e thread-to-thread passa ancora lungo quel secondo layer.

Infinity Fabric è legato allo stesso dominio di frequenza del controller di memoria, perciò l'overclock della memoria riduce la latenza e aumenta il bandwidth dell'interconnessione. Di conseguenza migliorano le prestazioni nelle applicazioni sensibili alla latenza - come i giochi.

Il test Processor Multi-Core Efficiency di SiSoftware Sandra ci aiuta a illustrare le prestazioni di Infinity Fabric. Usiamo il valore Multi-Threaded con l'impostazione "best pair match" (latenza più bassa). L'utility misura i tempi di ping tra i thread per quantificare la latenza dell'interconnessione in ogni configurazione possibile.

Le misure della latenza intra-core rappresentano la comunicazione tra due thread logici sullo stesso core fisico e, come si può vedere, disabilitare SMT fa sparire quella misura. Per le configurazioni rimanenti, l'overclock riduce la latenza di qualche nanosecondo. Come abbiamo visto in passato, le frequenze di memoria più alte hanno un effetto contenuto sulla latenza intra-core.

Image4

Image3

Le misure di latenza Intra-CCX quantificano la latenza tra i thread sullo stesso CCX ma che non sono residenti sullo stesso core. Aumentare la frequenza porta a riduzioni di latenza oltre ~6ns.

La voce Cross-CCX quantifica la latenza tra i thread su due CCX separati, e vediamo una simile riduzione dei tempi grazie all'overclock. Come si può vedere Ryzen 7 1800X ha una latenza Cross-CCX molto più bassa del processore Threadripper in configurazione standard e della maggior parte delle configurazioni overcloccate.

Questo è probabilmente dovuto a una qualche forma di provisioning, possibilmente nello scheduling gli algoritmi, per il layer di interconnessione ulteriore di Threadripper.

Come si può vedere la CPU Threadripper overcloccata in modalità Game, che non ha un collegamento dell'interconnessione attivo verso l'altro die, ha la latenza Cross-CCX più bassa.

Die-To-Die misura la comunicazione tra i due die Zeppelin separati. La modalità Game disabilita efficacemente il secondo die Zeppelin a livello di sistema operativo, eliminando totalmente la latenza die-to-die. L'uncore del secondo die è comunque ancora attivo, cosa necessaria affinché I/O e controller di memoria siano accessibili.

La modalità Creator soffre della latenza die-to-die peggiore, ma l'overclock aiuta considerevolmente. Le due opzioni SMT - on e off - godono anch'esse di grandi riduzioni legate all'overclock.

L'utility misura anche il bandwidth dell'interconnessione, che è critico per le prestazioni poiché i dati recuperati dalla memoria remota scorrono anche attraverso l'interconnessione. Come tale, AMD fa l'overprovisioning dell'interconnessione e il sottosistema di memoria per ottimizzare l'architettura di memoria distribuita.

Sia la modalità Creator che le configurazioni Local/SMT offrono il miglior bandwidth, godendo di grandi aumenti dall'overclock. Ryzen 7 1800X finisce a metà del grafico, insieme alla modalità Game di Threadripper, il che è logico considerando che sono entrambe configurazioni 8C/16T. Disabilitare SMT con entrambi i die attivi (Local/SMT off) permette di avere un profilo unico che garantisce prestazioni maggiori con accessi più grandi e prestazioni minori con accessi più piccoli.

Cache e latenza memoria

Abbiamo testato con memoria DDR4-2666 a impostazioni stock e siamo passati a DDR4-3200 per le configurazioni overcloccate.

Il Translation Look Aside Buffer è una cache che riduce i tempi di accesso archiviando gli indirizzi di memoria a cui si è fatto accesso di recente. Come tutte le cache, TLB ha una capacità limitata, quindi le richieste d'indirizzo che finiscono in TLB sono "hits", mentre quelle che finiscono fuori dalla cache sono "misses". Ovviamente gli "hits" sono più desiderabili e un prefetcher efficace porta a un maggior tasso di "hits".

I modelli di accesso sequenziale sono quasi interamente pescati da TLB, quindi il test sequenziale è una buona misura delle prestazioni del prefetcher. Il test in-page random misura gli accessi casuali all'interno della stessa pagina di memoria. Misura anche le prestazioni TLB e rappresenta le prestazioni casuali nel caso migliore - questa è la misura che i produttori usano ufficialmente. Il test  full random ha un mix di "hits" e "misses" TLB, con una forte probabilità di "misses", quindi quantifica la latenza nel caso peggiore.

Modello di accesso alla memoria a parte, i pezzi di dati più piccoli rientrano nella cache L1. E con l'aumentare delle dimensioni, popolano la cache più grandi.

  L1 L2 L3 Memoria principale
Range 2KB - 32KB 32KB - 512KB 512KB - 8MB 8MB - 1GB

Image1

Image7

Image2

Threadripper 1950X ha migliore latenza L2 e L3 rispetto a Ryzen 7 1800X con ogni tipo di modello d'accesso. Inoltre, osserviamo una notevole riduzione della latenza dovuta all'overclock per le cache L1, L2 e L3 di Threadripper.

Ciò cambia quando il carico fluisce verso la memoria principale. La modalità Creator di Threadripper - l'impostazione di default - ha la latenza più alta a ogni modello d'accesso. Questo è un risultato diretto degli accessi di memoria che interessano la memoria remota. Le nostre misure in-page rispecchiano la specifica 86,9ns di AMD, ma l'intero accesso casuale nel caso peggiore supera 120ns. Overcloccare processore e memoria riduce la latenza, ma la modalità Creator non supera comunque alcuna delle configurazioni con cui la confrontiamo.

Passare in modalità NUMA con impostazione Local migliora drasticamente l'accesso alla memoria principale per le altre configurazioni. Misuriamo circa 60 ns per un accesso di memoria in-page near, nuovamente in linea con le specifiche AMD, mentre la latenza peggiore è di 100ns.

Bandwidth cache

Ogni CCX ha le proprie cache, quindi una CPU Threadripper ha quattro cluster distinti di L1, L2 e L3. Il nostro benchmark sul bandwidth illustra le prestazioni aggregate di questi livelli.

Durante il test single-thread, Ryzen 7 1800X dimostra un throughput inferiore rispetto ai Threadripper. Le altre configurazioni si aggregano in gruppi prevedibili a impostazioni stock e overcloccate.

Image6

Image5

I test multi-thread sono molto più interessanti; vediamo Ryzen 7 1800X e le due modalità Threadripper Game finire in fondo al grafico. Poiché la modalità Game disabilita i core in un die, disabilita effettivamente la cache corrispondente.