Domanda

Voglio stimare le prestazioni delle prestazioni a causa delle mancate missioni di TLB su una macchina X86-64 (Intel Nehalem) che esegue Linux. Desidero ottenere questa stima utilizzando alcuni contatori di prestazioni. Qualcuno ha alcuni suggerimenti su qual è il modo migliore per stimare questo?

Grazie Arka

È stato utile?

Soluzione

Se riesci ad avere accesso a un sistema basato su "Westmere", le caratteristiche delle prestazioni del tuo codice dovrebbero essere abbastanza simili a quelle che hai sul "Nehalem", ma avrai accesso a un nuovo evento di contatore delle prestazioni hardware che misura quasi esattamente ciò che tu volere.

Su Westmere, la migliore stima delle prestazioni persa in attesa che le mancate misteri di TLB vengano gestite è probabilmente dall'evento del contatore delle prestazioni hardware 08H, Mask 04H "DTLB_LOAD_MISSES.WALK_CYCLES", che è descritto come Conteting "Page Miss Handler è occupato con una pagina Cammina a causa di un carico Miss al secondo livello TLB ". Questo è descritto in "Intel® 64 e IA-32 Architectures Software Svilupper Volume 3B: Guida alla programmazione del sistema, Parte 2" (numero di documento: 253669), disponibile online all'indirizzohttp://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html

Il motivo per cui è necessario questo evento è che il tempo di elaborazione Miss TLB è dominato dal tempo necessario per leggere la riga della cache contenente la voce della tabella di pagina. Se quella linea di cache è nella cache L2, il sovraccarico di un Miss TLB sarà molto piccolo (dell'ordine di 10 cicli). Se la linea è nella cache L3, forse 25 cicli. Se la linea è in memoria, allora ~ 200 cicli.

  • Se c'è anche un perde nelle cache della traduzione della pagina di livello superiore, ci vorranno più viaggi in memoria per trovare e recuperare la voce della tabella di pagina desiderata (ad esempio, https://stackoverflow.com/a/9674980/1264917).
  • Su alcuni processori i contatori della cache L2 possono dirti quante passeggiate al tavolo colpite e mancate nella L2, ma non su Nehalem. (Non aiuterebbe molto in questo caso poiché le passeggiate TLB che colpiscono nell'L3 sono anche abbastanza veloci e ciò che vuoi veramente sono le passeggiate TLB che devono andare in memoria.)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top