Dentro core e cache, AVX-512

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

I vantaggi dell'architettura Skylake rispetto a quella Broadwell vi sono noti se avete letto le recensioni dei processori desktop Intel che abbiamo pubblicato in passato. A questa implementazione Intel ha aggiunto alcune caratteristiche, come AVX-512 e una gerarchia della cache riprogettata.

core microarchitecture enhancements

Clicca per ingrandire

Prima, un veloce aggiornamento. Il design Skylake visto per la prima volta sulle CPU desktop mainstream è piuttosto simile a quello Broadwell che l'ha preceduto. Intel, però, ha fatto diverse modifiche per promuovere il parallelismo a livello istruzione. I progettisti hanno ampliato il front end e migliorato l'execution engine con un buffer re-order più ampio, scheduler, file di registro integer e prestazioni retire maggiori. Migliori decodificatori, branch predictor (riduce le penalità in caso di salti errati) e buffer di load/store più profondi sono anch'essi nella lista dei miglioramenti. Skylake ha una pipeline integer più ampia rispetto a Broadwell, insieme a una cache micro-op rinforzata (1,5 volte il bandwidth e una finestra instruction più ampia) che ha un hit rate dell'80%.

Anche se tutto ciò è utile, i cambiamenti fatti da Intel a questa rivisitazione dell'architettura Skylake sono analogamente eccitanti.

Il core Skylake-SP

Intel abilita AVX-512 fondendo le porte 0 e 1 in una singola unità di esecuzione a 512b (raddoppiando il throughput) ed estendendo la porta 5 per aggiungere la seconda unità FMA fuori dal core. Ciò è presentato come "Extended AVX" nella slide sotto. Questo permette di avere fino a 32 double-precision FLOPS per core e 64 single-precision FLOPS per core.

skylake sp core

Clicca per ingrandire

Il progetto del core originario avrebbe supportato un throughput L1 maggiore. Ciò non era richiesto, almeno fino a quando Intel non ha aggiunto una seconda unità FMA. Raddoppiare la capacità di calcolo del core richiede più throughput per impedire gli stalli. Perciò, Intel ha raddoppiato il bandwidth L1-D load and store per mantenere ogni core alimentato. Ora abbiamo fino a due load a 64-byte e uno store a 64-byte per ciclo.

Oltre ai 256KB di cache L2 per core di Skylake, Intel ha aggiunto altri 768KB fuori dal core. Intel afferma che i blocchi aggiunti sono fisicamente al di fuori del core originale. I dati archiviati sulla cache L2 esterna di conseguenza soffrono di un penalty di due cicli rispetto alla cache L2 interna. A ogni modo, passare da 256KB a 1MB di cache L2 è un grande affare. Una capacità maggiore e migliori algoritmi di caching coprono ampiamente la latenza leggermente maggiore.

Cambiare la gerarchia della cache

E poi c'è la rinnovata gerarchia della cache. La cache L2 quadruplicata è nuovamente privata per ogni core, quindi nessuno dei dati all'interno è condiviso con altri core. Ogni core è anche associato a una minore cache L3 condivisa - da 2,5 MB a 1,375 MB per core.

In una gerarchia inclusiva, le linee di cache archiviate in L2 sono duplicate nella L3. Considerando la maggiore capacità di L2, una gerarchia inclusiva avrebbe popolato gran parte della cache L3 con dati duplicati. Per compensare la capacità L2 maggiore, Intel è passata a uno schema di caching non inclusivo che non richiede che tutti i dati nella L2 siano duplicati nella L3. Adesso la cache L3 serve come cache overflow anziché come cache primaria - la cache L2 è ora primaria. Ciò significa che solo le linee di cache che sono condivise tra più core sono duplicate nella cache L3. La cache L2 rimane 16-way associativa, ma la L3 passa da 20-way a 11-way.

La capacità maggiore della cache L2 è un vantaggio per i carichi di virtualizzazione, in gran parte perché non devono condividere la maggiore cache L2 privata. Questo inoltre garantisce che i carichi che sfruttano i thread accedano a più dati per thread, riducendo il passaggio dei dati lungo la mesh.

Il rapporto L2 miss-per-instruction è ridotto nella maggior parte dei carichi, mentre il rapporto L3 miss presumibilmente rimane simile a Broadwell-EP (varia in base al carico, certamente). Intel ha fornito benchmark sulla latenza insieme a un dato SPECint*_rate per rappresentare gli hit rate L2 e L3 nelle applicazioni comuni.

La latenza L3 aumenta perché ci sono più core. Inoltre, la cache L3 opera a una frequenza inferiore per adeguarsi alla topologia mesh.

AVX-512

Intel ha aggiunto il supporto AVX-512 al proprio design Skylake. In questo caso Intel ha deciso di non supportare tutte e 11 le istruzioni, ma di usare i specifici insiemi di caratteristiche per differenti segmenti di mercato.

L'unità vettore è passata da 256 a 512 bit, gli operandi sono raddoppiati da 16 a 32, e sono stati aggiunti otto registri mask, tra i diversi miglioramenti. Tutti restituiscono solidi passi avanti nelle prestazioni di calcolo a singola e doppia precisione rispetto alle generazioni precedenti.

Processare le istruzioni AVX è un lavoro che impatta sulle prestazioni, quindi queste CPU operano a frequenze differenti in base al lavoro che svolgono. Con l'aggiunta di AVX-512, ci sono ora tre insiemi di frequenze base e Turbo Boost (non-AVX, AVX 2.0, AVX-512), e questi variano su una base "per core". La slide delle prestazioni evidenzia che, persino alle frequenze AVX inferiori, la velocità di calcolo complesso sale apprezzabilmente grazie al set di istruzioni. AVX-512 domina sia sul fronte dei GFLOPS per watt e che su quello dei GFLOPS per GHz.