Topologia mesh e UPI

Arriva la famiglia Intel Xeon Scalable Processor. Ecco il test del modello Xeon Platinum 8176 con 28 core e 56 thread.

Avatar di Tom's Hardware

a cura di Tom's Hardware

La famiglia Scalable Processor integra cambiamenti fondamentali alle interconnessioni per facilitare le comunicazioni all'interno del processore e tra i socket. Ci siamo occupati della topologia di Skylake-X nell'articolo "Dal ring bus a mesh, il futuro prossimo dei processori Intel". Nella recensione del Core i9-7900X abbiamo aggiunto altri dettagli, come la latenza dell'interconnessione e i test sul bandwidth. Intel, di recente, ha svelato ulteriori dettagli sulla topologia mesh che vi spieghiamo qui.

Addio ring bus

Le interconnessioni del processore spostano dati tra elementi come i core, la memoria e i controller di I/O. Negli anni si sono usate diverse tecniche per le comunicazioni dentro al processore. Il ring bus di Intel è il cuore dei chip Intel dal 2007, anno di uscita di Nehalem. Sfortunatamente il ring bus non può scalare in modo indefinito; con l'aumentare di core, canali di memoria e I/O è diventato inadeguato.

03 JPG

Clicca per ingrandire

02 (3) PNG
Clicca per ingrandire

Con il ring bus, i dati seguono un percorso ad anello per raggiungere la destinazione. Come potete immaginare, aggiungere delle fermate al bus non fa altro che aumentare la latenza. A un certo punto, per combattere queste penalità, Intel ha dovuto dividere il suo die più grande in due ring bus. Ciò ha portato complessità nello scheduling, con i buffered switch che facilitavano la comunicazione tra gli anelli ma aggiungevano una penalità di cinque cicli.

Nella seconda slide, potete vedere la topologia mesh di Intel confrontata fianco a fianco al progetto con due ring bus di Broadwell-EX.

Benvenuta topologia mesh

L'architettura mesh 2D di Intel ha fatto il proprio debutto nei prodotti Knights Landing. Si tratta di chip fino a 72 core, quindi la mesh non è scalabile solo a parole ma anche nei fatti.

Nel caso di Skylake-SP una disposizione a sei colonne di core avrebbe richiesto tre ring bus separati, introducendo più buffered switch nel progetto e rendendolo, di fatto, insostenibile. La mesh consiste invece di righe e colonne di interconnessioni bidirezionali tra core, cache e controller di I/O.

Come potete vedere, i buffered switch che uccidevano la latenza sono assenti. L'abilità di far passare i dati tra i core consente un indirizzamento molto più complesso e probabilmente efficiente.

Intel dice che la sua mesh 2D ha una minore tensione e frequenza rispetto al ring bus, ma allo stesso tempo offre un bandwidth maggiore e una minore latenza. La mesh opera tra ~1,8 - 2,4 GHz per risparmiare energia, anche se quel dato varia in base al modello. Di certo, questo permette all'azienda di dedicare una quota maggiore al completamento del lavoro utile senza sacrificare il throughput all'interno del die. Dopotutto il bandwidth della mesh impatta anche sulle prestazioni di memoria e cache.

Intel ricava i processori Xeon Scalable da differenti die fatti di configurazioni di core variabili. Il die XCC (eXtreme Core Count) ha 28 core, quello HCC (High Core Count) ha 18 core e quello LCC (Low Core Count) ne offre 10. Intel non ha diffuso il numero di transistor e le dimensioni dei die.

Le colonne di core sono immagini specchiate l'uno dell'altra con percorsi mesh che corrono dai lati destro e sinistro dei core specchiati. Questo influenza la distanza tra le colonne di core, e si traduce in più cicli per il passaggio dei dati in orizzontale. Ad esempio, è necessario un hop/ciclo per spostare i dati verticalmente alla cache del core successivo, mentre spostarli orizzontalmente dalla seconda colonna alla terza richiede tre cicli. La funzione Intel Sub-NUMA Clustering (SNC) può dividere il processore in due domini NUMA separati, riducendo l'impatto della latenza nel passaggio lungo la mesh verso i core/cache più lontani. È una soluzione simile alla tattica Cluster On Die (COD) usata da Intel per dividere due ring bus sui processori Broadwell-EP. SNC garantisce prestazioni maggiori in alcuni scenari, ma non troppe con l'architettura mesh.

In passato, caching e home agent (CHA) risiedevano sul fondo di ogni ring. Intel ha cambiato il CHA passando a un design distribuito per rispecchiare la cache L3 distribuita. Questo aiuta a minimizzare il traffico di comunicazione tra LLC e home agent, abbassando la latenza.

Con Broadwell tutto il traffico PCIe scorreva nel ring bus in un solo punto, creando un collo di bottiglia. In Skylake, Intel ha scolpito l'I/O integrato per offrire fino a tre pipeline separate PCIe a 16 linee che risiedono nella parte alta di differenti colonne - in totale 12 porte root. Il design modulare mette a disposizione più punti di entrata, alleviando il collo di bottiglia. Insieme agli altri progressi, si ottiene fino al 50% in più di bandwidth I/O, nel complesso. Due collegamenti UPI condividono inoltre un singolo punto di entrata nella parte superiore di una colonna. I modelli con un terzo collegamento UPI hanno un punto di entrata aggiuntivo. I processori con Omni-Path integrato hanno un collegamento PCIe x16 dedicato ulteriore, quindi l'aggiunta del networking non consuma nessuna delle linee normali esposte all'utente.

Intel ha spostato i suoi due controller di memoria, con tre canali ciascuno, ai lati opposti del die. Potete popolare fino due DIMM per canale (DPC). La limitazione 2DPC è un passo indietro rispetto al supporto 3DPC di Broadwell, ma Intel contrasta ciò con il 50% in più dei canali totali. Potete accoppiare fino a 768GB di memoria ai modelli standard e 1,5 TB con quelli M. Intel non impone un data rate inferiore se installate più DIMM per canale (1DPC, 2DPC), al contrario dei Broadwell.

Complessivamente i perfezionamenti del sottosistema di memoria garantiscono un miglioramento enorme della capacità potenziale e dell'effettiva latenza/throughput, come vedrete nei test.

Ultra Path Interconnect (UPI)

La nuova Ultra Path Interconnect (UPI) sostituisce QuickPath Interconnect (QPI). Intel ha ottimizzato il percorso tra i nodi perché memoria e throughput di I/O per socket stavano crescendo in modo esagerato, raggiungendo i limiti della scalabilità di QPI. L'azienda poteva aumentare la tensione di QPI e la frequenza per velocizzare le comunicazioni, ma sarebbe stato solo un palliativo.

10 (2) PNG

Clicca per ingrandire

z (1) PNG

Clicca per ingrandire

11 (2) PNG

Clicca per ingrandire

Intel ha sviluppato UPI per migliorare il data rate e l'efficienza energetica. QPI richiedeva una fornitura di risorse statica al target prima che venissero esaudite le richieste, mentre UPI ha un approccio più adattativo, avviando le richieste prima che le risorse siano disponibili al target. La CHA distribuita consente più messaggi in-flight al target, e questo migliora l'efficienza. Numerosi altri miglioramenti aiutano ad avere un aumento dal 4 al 21% nell'efficienza del trasferimento per connessione - alla stessa velocità. Il risultato finale è un aumento da 9,6 GT/s a 10,6 GT/s senza un eccessivo consumo.

Il bandwidth maggiore velocizza le comunicazioni ma ha anche altri effetti virtuosi. Come QPI, anche UPI ha uno stato L0p (low power) che riduce il throughput durante i periodi di bassa attività per risparmiare energia. La maggiore efficienza permette un consumo energetico L0p persino inferiore.