2016-06-22 45 views
7

In Intel's optimization guide, punto 2.1.3, elencano una serie di miglioramenti al sottosistema cache e la memoria a Skylake (sottolineatura mia):La cache L2 Skylake è stata migliorata riducendo l'associatività?

La gerarchia di cache della microarchitettura Skylake ha i seguenti miglioramenti:

  • Larghezza di banda della cache superiore rispetto alle generazioni precedenti.
  • Gestione contemporanea di più carichi e depositi abilitati da buffer ingranditi.
  • Il processore può eseguire due passaggi di pagina in parallelo rispetto a uno nella microarchitettura Haswell e alle generazioni precedenti.
  • Penalità del carico suddiviso in pagine verso il basso da 100 cicli della precedente generazione a 5 cicli.
  • L3 larghezza di banda di scrittura aumentata da 4 cicli pe r linea nella generazione precedente a 2 per riga.
  • Supporto per l'istruzione CLFLUSHOPT per il lavaggio di linee telefoniche e gestione dell'ordine di memoria dei dati scaricati mediante SFENCE.
  • Riduzione delle prestazioni ridotte per un precaricamento software che specifica un puntatore NULL.
  • L'associatività L2 è cambiata da 8 vie a 4 vie.

quella finale catturato la mia attenzione. In che modo una riduzione del numero di modi in cui un miglioramento? Di per sé, sembra che un minor numero di modi sia strettamente peggiore di altri modi. Naturalmente, capisco che potrebbero esserci validi motivi ingegneristici per cui una riduzione del numero di modi potrebbe essere un compromesso che consente altri miglioramenti, ma qui è posizionata, di per sé, come un miglioramento.

Cosa mi manca?

risposta

7

È decisamente peggio per le prestazioni della cache L2.

Secondo lo standard this AnandTech writeup of SKL-SP (aka skylake-avx512 or SKL-X), Intel ha affermato che "il motivo principale [per ridurre l'associatività] era rendere il design più modulare". Skylake-AVX512 ha 1MiB di cache L2 con associatività a 16 vie.

Presumibilmente il calo a 4 vie associatività non fa male troppo male nel computer portatile e desktop parti dual e quad-core (SKL-S), dal momento che c'è un sacco di larghezza di banda da memorizzare nella cache L3. Penso che se le simulazioni e i test di Intel avessero scoperto che faceva molto male, avrebbero aggiunto il tempo extra di progettazione per mantenere la cache 256k a 8 vie su Skylake non AVX512.


L'aspetto positivo dell'associatività inferiore è il budget di alimentazione. Potrebbe indirettamente aiutare le prestazioni consentendo più spazio per il turbo, ma principalmente lo hanno fatto per migliorare l'efficienza, NON per migliorare la velocità. Liberare spazio nel budget energetico consente loro di spenderlo altrove. O non spendere tutto, e usare solo meno energia.

CPU mobili e server multi-core si preoccupano molto del budget di alimentazione, molto più delle CPU desktop quad-core di fascia alta.

L'intestazione nell'elenco dovrebbe leggere con maggiore attenzione "modifiche", non "miglioramenti", ma sono sicuro che il reparto marketing non gli consentirebbe di scrivere qualcosa che non sembra positivo. : P Almeno Intel documenta le cose in modo accurato e dettagliato, inclusi i modi in cui le nuove CPU sono peggiori di quelle più vecchie.


Anandtech's SKL writeup suggerisce che far cadere l'associatività liberato il bilancio facoltà di aumentare la larghezza di banda L2, che (nella foto grande) compensa il miss rate maggiore.

IIRC, Intel ha una politica che qualsiasi modifica di progetto proposta deve avere un rapporto 2: 1 di guadagno perf per alimentare il costo, o qualcosa del genere. Quindi, presumibilmente, se hanno perso l'1% delle prestazioni, ma hanno risparmiato il 3% di energia con questo cambio L2, lo fanno. Il numero 2: 1 potrebbe essere corretto, se lo ricordo correttamente, ma l'esempio dell'1% e del 3% è completamente inventato.

C'è stata qualche discussione su questo cambiamento in una delle interviste podcast che David Kanter ha fatto dopo che i dettagli sono stati rilasciati all'IDF. IDK if this is the right link.

+1

Ecco [un'altra interessante teoria] (http://www.agner.org/optimize/blog/read.php?i=415#867): che lo Skylake-S (cioè Skylake originale) aveva diverse modifiche architettoniche in previsione del supporto di AVX-512 nelle ultime linee Skylake-X e Skylake Xeon, anche se Skylake-S non l'ha supportato. In particolare: _ [SKL riducendo l'associatività a 4] era la preparazione all'aumento della dimensione della cache: la cache SKL-S è solo un quarto della cache SKL-X con la stessa organizzazione e un'associatività ridotta consentita per ridurre il budget dei transistor di una cache di 1 MB. . Solo speculazioni ma comunque interessanti! – BeeOnRope

+1

@BeeOnRope: sì, ho avuto lo stesso pensiero dopo aver letto [AnandTech's SKL-X writeup] (http://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7 -7820x-e-i7-7800x-tested /), dove fanno la stessa affermazione: l'associatività L2 ridotta era almeno in parte per renderla più modulare. Quindi il presupposto che SKL-S ottenga un aumento generale del budget energetico altrove potrebbe non essere corretto. (Non lo esclude comunque. Potrebbe essere comunque un cambiamento generale buono o neutro per SKL-S. E Intel non lo farebbe se pensassero che fosse troppo brutto.) –