2012-05-02 4 views
9

Ho una domanda riguardante la relazione tra mancanze della cache dei livelli della cache delle differenze in un'architettura x86 (dire Xeon X5660).Cosa causa una mancanza di cache L3 nella CPU?

Ho eseguito alcuni profili su un'applicazione OpenCL (Blackscholes), su alcuni contatori delle prestazioni. Per ogni contatore, ho riassumere tutti i valori superiori a tutti i core e ottenere questo risultato:

instructions #: 493167746502.000000 

L3_MISS #: 1967809.000000 

L1_MISS #: 2344383795.000000 

L2_DATA_MISS #: 901131.000000 

L2_MISS #: 1397931.000000 

memory loads #: 151559373227.000000 

La domanda è perché il numero di L3 manca è più grande del numero di incidenti L2? (Continuo a ripetere la profilazione molte volte e la varianza non è significativa). Quello che ho pensato in fondo è:

miss L2 = L3 colpisce + L3 manca

Qualcuno mi potrebbe spiegare che cosa va male qui, mi sono perso qualcosa?

Mettendo un po 'oltre, cosa causa una lettura cache per l'ultima cache di livello (CPU) della CPU? È semplicemente una mancanza di dati da L2?

Grazie

+4

Potrebbe essere che si sta misurando questo su un'architettura con cache L2 separate e un L3 unificato? In tal caso, potresti semplicemente leggere i messaggi di errore della cache da un L2 e i numeri L3 potrebbero provenire da un L3 unificato. – boiler96

+0

Sì, l'ho notato. Ma sono sicuro di aver riassunto tutti i core. Quindi non dovrebbe importare se sia unificato o no, giusto? – Zk1001

+0

Un'altra cosa è, quando faccio questo: "cat/sys/devices/system/cpu/cpu0/cache/index2/type", quello che ho ottenuto è "unified". È noto che la cache L2 è privata e 256K per core per tutte le architetture di Westmere, no? – Zk1001

risposta

2

The 32 nanometer, six core Westmere-EP chip

Rif Image: http://www.theregister.co.uk/2010/02/03/intel_westmere_ep_preview/

Come si può vedere sopra, In 'Westmere-EP' architettura blocco di 3 nuclei condividono una sezione di cache L3. Quindi cosa dice "boiler96" ha senso. Si stanno ottenendo miss L2 per il core individuale o il proprio conteggio delle missioni L3 viene da Uncore che viene combinato con il mancato riscontro di errori da tutti i core.