Tom's Hardware Italia
CPU

Ryzen Threadripper e giochi, modalità alla prova

Pagina 1: Ryzen Threadripper e giochi, modalità alla prova
I Ryzen Threadripper offrono diverse modalità operative per adattarsi ai giochi di vecchia o nuova concezione. Qual è la modalità migliore per giocare?

Se bramate molti core e un sacco di connettività PCI Express, come la maggior parte dei creatori dei contenuti, degli avidi multitasker e gli sviluppatori di software, allora Threadripper è quello che fa per voi. Potrebbe essere una buona scelta anche se siete un giocatore che in background usa applicazioni di produttività che sfruttano molti thread.

Il die Zeppelin creato da AMD, alla base di queste CPU, ha un'architettura differente da qualsiasi cosa mai vista prima e questo può creare problemi con alcuni software scritti prima dell'introduzione delle CPU Ryzen. AMD ha lavorato con gli sviluppatori di software per appianare gli intoppi prestazionali che abbiamo identificato al debutto e così, test dopo test, la situazione è migliorata sensibilmente.

threadripper

Threadripper però, a causa della configurazione formata da due die attivi, pone un nuovo insieme di sfide per AMD rispetto alle soluzioni Ryzen. La casa di Sunnyvale ha "risolto il problema" con due interruttori che influenzano il modo in cui opera il processore, offrendovi modalità ottimizzate per il carico di lavoro che state eseguendo. Questi switch creano un totale di quattro configurazioni uniche tra cui scegliere. Al fine di condensare il numero di combinazioni AMD ha creato due modalità, Creator e Game.

Perché c'è bisogno di una Game Mode?

Il die Zeppeling consiste di due CCX – due quad-core – connessi tra loro da Infinity Fabric. Anche sui processori Ryzen 7, 5 e 3 a singolo die questa interconnessione crea un layer di latenza che influeza la comunicazione tra i CCX. AMD si è basata su quel design per i processori Threadripper, lasciando attivi due die Zeppelin. Come potete immaginare, questo introduce un ulteriore layer di latenza legato a Infinity Fabric.

01 PNG

Ogni die ha il proprio controller di memoria e PCIe. Perciò se un thread in funzione su un core deve accedere ai dati residenti nella cache presente su un altro die, deve attraversare l'interconnessione tra questi die, incorrendo in una latenza significativa. Naturalmente il penalty di latenza tra i die è maggiore di quello che c'è tra i CCX nelle configurazioni a singolo die. Per combattere la potenziale regressione prestazionale conseguente a questo approccio, AMD ha ideato una soluzione interessante: ha introdotto un nuovo switch che regola l'accesso alla memoria, attivabile dal BIOS della motherboard o il software Ryzen Master. Le impostazioni Local e Distributed passano tra NUMA (Non-Uniform Memory Access) o UMA (Uniform Memory Access).

01 JPG

UMA (Distributed) è piuttosto semplice: permette a entrambi i die di accedere a tutta la memoria presente. La modalità NUMA (Local) tenta di mantenere tutti i dati del processo da svolgere sul die confinato al controller di memoria direttamente collegato, stabilendo un nodo NUMA per die. L'obiettivo è minimizzare le richieste alla memoria remota collegata all'altro die.

02 JPG

NUMA funziona meglio se i programmi sono stati progettati specificatamente per usarlo. Anche se la maggior parte dei software desktop non è stata scritta con NUMA in mente, sono comunque possibili miglioramenti prestazionali in applicazioni "non NUMA".

Se i giochi non funzionano…

Alcuni giochi semplicemente non si caricano quando sono messi di fronte ai 32 thread di Threadripper. Lo stesso succederà quando Intel introdurrà il top di gamma Skylake-X con 18 core a breve.

03 PNG
04

03 JPG

Di conseguenza AMD ha creato una modalità chiamata Legacy Compatibility che esegue un comando "bcdedit /set numproc XX" in Windows. Questo comanda "taglia" il numero di thread della metà. Fortunatamente a causa dell'allocazione di default da parte del sistema operativo, il comando disabilita tutti i core / thread sul secondo die. Questo ha il beneficio collaterale di eliminare la comunicazione thread-to-thread tra die differenti, risolvendo il problema della costante sincronizzazione tra i thread che induce latenza durante il gaming. Impedisce anche la migrazione dei thread, abbassando la possibilità di cache miss.

Cosa testare?

I due nuovi interruttori ci danno un ricco insieme di opzioni con cui giocare. La preimpostazione Creator di AMD espone 16C/32T e lascia il sistema operativo in modalità di accesso alla memoria distribuito. Queste impostazioni insieme dovrebbero garantire prestazioni eccellenti nella maggior parte dei software di produttività. La modalità Game taglia la metà dei thread tramite la modalità di compatibilità e riduce la latenza di memoria e die-to-die con accesso di memoria locale.

Nel nostro primo approccio con Ryzen avevamo riscontrato che disabilitando SMT le prestazioni di alcuni giochi miglioravano. Questo crea un'altra impostazione da considerare, che espande la lista di configurazioni adottabili. Certo, alcune opzioni hanno poco senso per il gaming, ma potrebbe essere interessante testarle con software normali. Abbiamo ridotto la nostra lista in base alle rilevazioni su Infinity Fabric e la precedente esperienza con i chip AMD.

Configurazioni Local (NUMA) / Distributed (UMA) Legacy Mode (On/Off) SMT (Multi-Threading)
Creator Mode Distributed Off On
Game Mode Local On On
Custom – Local/SMT Off Local Off Off
Custom – Local/SMT On Local Off On

Disabilitare SMT in modalità Game, che già comporta un dimezzamento di core/thread, riduce ulteriormente le risorse di calcolo. Abbiamo quindi lasciato SMT attivo ed entrambi i die attivi. Abbiamo anche lasciato tutti i core/thread attivi, isolando l'accesso di memoria al controller di memoria locale. Abbiamo riscontrato che quella combinazione è particolarmente utile nei titoli che sfruttano i thread nel nostro primo approccio con Threadripper. Ovviamente abbiamo deciso di fare dei test usando le modalità Creator e Game di default.

Sfortunatamente non si può semplicemente intervenire su uno switch e avviare il vostro gioco preferito. Ogni cambiamento richiede un riavvio.

Come detto, la modalità Game taglia della metà il numero di thread, cosa non buona se mentre giocate in background girano software che usano pesantemente i thread. Fortunatamente l'ampiezza di opzioni disponibili dovrebbe permetterci di trovare la configurazione migliore, quella di offrire le migliori prestazioni senza intaccare troppo le risorse di calcolo.

AMD ha progettato i Threadripper principalmente per l'uso su PC dedicati agli appassionati, che tendono a usare monitor ad alta risoluzione. Le risoluzioni più alte dipendono dalle prestazioni della GPU, cosa che riduce la variabilità tra le modalità di funzionamento della CPU. Per meglio illustrare le tendenze prestazionali e massimizzare il nostro tempo di test, abbiamo scelto di testare a 1920×1080, in modo da vedere meglio le sottili differenze tra le varie modalità.

Nel complesso la modalità Game è stata progettata per migliorare la latenza di memoria ed evitare un eccessivo traffico die-to-die tramite Infinity Fabric. Partiamo esaminando in che modo le nostre impostazioni influenzano Infinity Fabric e il sottosistema di memoria.