Topologia mesh, un cambiamento necessario

Test del processore Intel Core i9-7900X con 10 core e 20 thread basato su architettura Skylake-X e compatibile con le scheda madre X299 con socket LGA 2066.

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Come vedrete nei test con alcuni software e giochi, alcuni risultati non si allineano alle nostre aspettative. Dato il vantaggio sul fronte delle frequenze e le nuove caratteristiche dell'architettura di Skylake-X, come la cache riprogettata e la nuova topologia 2D mesh, non ci aspettavamo che i modelli Broadwell-E avessero delle chance. Questo è però quello che è accaduto in alcuni casi. Abbiamo chiesto lumi a Intel, ecco la risposta:

...abbiamo notato che ci sono una manciata di applicazioni dove la soluzione Broadwell-E è comparabile o più veloce di quella Skylake-X. Questo scambio di posizioni è un risultato dell'architettura mesh di Skylake-X rispetto all'architettura ring di Broadwell-E.

Ogni nuova architettura richiede che i progettisti facciano compromessi ingegneristici con l'obiettivo di migliorare le prestazioni generali della piattaforma. L'architettura mesh su Skylake-X non è differente.

Mentre questi compromessi impattano una manciata di applicazioni, generalmente i nuovi processori Skylake-X offrono un IPC eccellente e miglioramenti prestazionali rilevanti lungo una varietà di applicazioni.

Ci siamo occupati della nuova architettura mesh, almeno per i dettagli che l'azienda ha reso noti, nei giorni scorsi. Date un'occhiata a quell'articolo per avere maggiori informazioni. Si tratta certamente di un grande cambiamento a un progetto già efficace, quindi non sorprende che la topologia mesh non offra ulteriori prestazioni in tutti i nostri test.

Un po' di contesto

Le interconnessioni sono il percorso che permettono ai dati di passare tra i vari componenti chiave all'interno del chip, inclusi core, cache e controller di memoria e PCIe. Influenzano latenza e consumi, che a loro volta si riflettono su prestazioni e TDP.

Il ring bus di Intel debuttò con Nehalem nel 2007 e l'HyperTransport di AMD nel 2001. Entrambi le tecnologie si sono evolute negli anni, ma il rapido aumento del numero di core, delle prestazioni, della cache e del throughput I/O le ha spinte al limite. Ci sono una miriade di tecniche per aumentare le prestazioni delle interconnessioni esistenti ma spesso è necessario aumentare le frequenze e di conseguenza la tensione, al fine di ottenere evidenti miglioramenti prestazionali.

03 JPG
Ring bus

04 JPG

Ring bus con tanti core, clicca per ingrandire

Il ring bus bidirezionale di Intel, nell'immagine sopra in rosso su un die Broadwell LCC (Low Core Count), serve come un buon esempio. I dati attraversano un percorso circolare per raggiungere i componenti, ma la latenza sale all'aumentare del numero di core. La seconda immagine mostra il die Broadwell HCC (High Core Count) con 24 core. Allineare tutti i core in un bus monolitico imporrebbe un penalty prestazionale troppo grande per essere una buona scelta, quindi Intel ha diviso il die più grande in due ring bus separati. Questo aumenta la complessità dello scheduling, e i buffered switch che facilitano la comunicazione tra gli anelli impongono un penalty di 5 cicli, limitando la scalabilità.

Anche il bus HyperTransport di AMD è diventato inadeguato, quindi l'azienda ha presentato Infinity Fabric con l'architettura Zen. Il design è simile a due quad-core (CCX) che comunicano su un crossbar bidirezionale a 256 bit che gestisce anche il traffico northbridge e PCIe. Condividono anche un controller di memoria. Il viaggio lungo Infinity Fabric verso gli altri quattro core dentro al secondo Core Complex (CCX) e la sua cache abbinata porta a un aumento della latenza di comunicazione.

Abbiamo parlato a fondo del progetto e misurato la sua latenza testando Ryzen 5 1600X, quindi leggete quell'articolo per avere maggiori dettagli. Abbiamo anche riscontrato che le frequenze di memoria maggiori possono migliorare le caratteristiche di latenza di Infinity Fabric, il che è probabilmente una delle ragioni chiave per l'incremento prestazionale di Ryzen con memorie capaci di assicurare transfer rate più veloci.

AMD afferma che le ottimizzazioni di software e piattaforma possono far fronte ad alcuni dei problemi prestazionali che abbiamo notato nei nostri test, e da quello che abbiamo visto è vero. Gli sforzi di AMD, e la lunga sequela di aggiornamenti BIOS, driver per il chipset e update software, hanno portato a prestazioni molto migliori di quelle registrate nella prima recensione di Ryzen 7.

Il lavoro di AMD continua, e ora tocca a Intel far fronte alle stesse problematiche.

Topologia mesh

La nuova architettura mesh di Intel ha fatto il suo debutto nei prodotti Knights Landing (Xeon Phi). La mesh consiste di righe e colonne di interconnessioni che collegano core, cache e controller di I/O. Come potete vedere, i buffered switch che influenzavano la latenza sono spariti.

L'abilità di far passare i dati tramite i core favorisce un indirizzamento tra gli elementi molto più complesso ma efficiente. Intel indica inoltre che la mesh 2D ha una tensione e una frequenza minori rispetto al ring bus, pur offrendo un bandwidth maggiore e una minore latenza.

01 JPG

Topologia mesh, clicca per ingrandire

02

Intel ha spostato i controller DDR4 a sinistra e destra sul die a 18 core HCC (High Core Count) - similmente a Knights Landing - laddove solitamente li posizionava sul fondo dei design ring bus. L'immagine del die di Skylake-X suggerisce che ci sono anche sei controller di memoria, quindi Intel ha probabilmente disattivato due controller per i chip desktop. Intel probabilmente usa il più piccolo die LCC (Low Core Count) per il Core i9-7900X, ma l'azienda non ce l'ha confermato.

Testiamo l'impatto della topologia mesh

Intel ha progettato la sua mesh 2D per aumentare la scalabilità, ma ha anche dovuto fare dei compromessi. Abbiamo usato il test Processor Multi-Core Efficiency di SiSoftware Sandra per misurare la latenza inter-core, inter-module e inter-package. Il software offre test Multi-Threaded, Multi-Core Only e Single-Threaded. Usiamo il test Multi-Threaded con l'impostazione "best pair match" (latenza più bassa).

Il test misura le prestazioni tra i core con tutte le possibili coppie di thread, e per il Core i9-7900X questo porta a 189 risultati diversi. Abbiamo usato un parser per ottenere dei dati medi.

Processore Latenza Intra-Core Latenza Core-To-Core Latenza media Core-To-Core Bandwidth di trasferimento medio
Core i9-7900X 14.5 - 16ns 69.3 - 82.3ns 75.56ns 83.21 GB/s
Core i9-7900X @ 3200 MT/s 16 - 16.1ns 76.8 - 91.3ns 83.93ns 87.31 GB/s
Core i7-6950X 13.5 - 15.4ns 54.5 - 70.3ns 64.64ns 65.67 GB/s
Core i7-7700K 14.7 - 14.9ns 36.8 - 45.1ns 42.63ns 35.84 GB/s
Core i7-6700K 16 - 16.4ns 41.7 - 51.4ns 46.71ns 32.38 GB/s

Il valore intra-core quantifica la latenza tra i thread che risiedono sullo stesso core fisico, mentre i numeri core-to-core riflettono la latenza thread-to-thread tra due core fisici. Il Core i9-7900X è da confrontare con il 10 core Core i7-6950X, ma abbiamo incluso modelli quad-core come riferimento.

Abbiamo registrato un leggero aumento della latenza intra-core e una differenza nella latenza media di 10,92ns tra i due modelli. Nonostante la maggiore latenza del Core i9, abbiamo misurato un vantaggio di 17,54 GB/s nel bandwidth di trasferimento medio - un aumento del 26,7%. Abbiamo generato il nostro primo set di risultati del Core i9-7900X con memoria DDR4-2666 ma abbiamo fatto diversi test con DDR4-3200 e notato un aumento della latenza mesh in tutti i test. Abbiamo anche registrato un bandwidth di trasferimento medio maggiore. Si tratta di risultati preliminari, e stiamo conducendo ulteriori test su latenza e giochi con memorie dotate di trasfer rate differenti e timing per un'analisi più approfondita.

Processore Latenza Intra-CCX Core-to-Core Latenza Cross-CCX Core-to-Core Latenza media Cross-CCX Bandwidth di trasferimento medio
Ryzen 7 1800X 40.5 - 82.8ns 120.9 - 126.2ns 122.96ns 48.1 GB/s
Ryzen 5 1600X 40.6 - 82.8ns 121.5 - 128.2ns 123.48ns 43.88 GB/s

I processori Ryzen di AMD hanno un'architettura decisamente diversa che porta a misure differenti. Le misure di latenza intra-core rappresentano la comunicazione tra due thread logici sullo stesso core fisico e non sono influenzate dalla frequenza della memoria.

Le misure intra-CCX quantificano la latenza tra i thread sullo stesso CCX che non risiedono sullo stesso core. In passato, abbiamo osservato leggere variazioni, ma la latenza intra-CCX non viene influenzata molto dalla velocità della memoria. Abbiamo tuttavia visto cali fino al 50% nella latenza cross-CCX, ossia la latenza tra i thread posti su due CCX separati, passando da DDR4-2333 a DDR4-3200.

Bandwidth

fabric bandwidth

Abbiamo registrato i valori del bandwidth dell'interconnessione. Il Core i9-7900X ha un grande vantaggio rispetto al predecessore Broadwell-E. I processori Ryzen affossano i modelli quad-core di Intel ma offrono un bandwidth medio molto minore rispetto alle CPU a 10 core di Intel.