realtime cache visualisatie
DESCRIPTION
Realtime cache visualisatie. Joachim Vermeir Begeleiders: lic. K. Beyls, Dr Y. Yu Promotor: Prof. Dr. ir. E. D’Hollander. Overzicht. Probleemstelling/Doelstelling Achtergrond Aanpak: performance counters/simulatie Realisaties Besluit. 1.1 Probleemstelling. Cachegedrag = onzichtbaar - PowerPoint PPT PresentationTRANSCRIPT
Realtime cache visualisatie
Joachim Vermeir
Begeleiders: lic. K. Beyls, Dr Y. Yu
Promotor: Prof. Dr. ir. E. D’Hollander
Overzicht
1. Probleemstelling/Doelstelling
2. Achtergrond
3. Aanpak: performance counters/simulatie
4. Realisaties
5. Besluit
1.1 Probleemstelling
1. Cachegedrag = onzichtbaar– Cache heeft stijgende invloed op prestatie
(antiwet van Moore)– Effecten op de prestatie: I-cache, D-cache– Cache missers: koude, conflict, capaciteit
2. Probleem met het bestaande visualisatieprogramma: TRAAG
– Java/Swing UI– De metingen worden gesimuleerd aan de hand van
een cache model
1.2 Doelstelling
• Cachegedrag visualiseren– Visualisatie versnellen– Opmeten versnellen
• Het interactieve aspect uitbreiden– De gebruiker feedback geven over de
resultaten
2. Achtergrond
• Bestaande visualisatieprogramma’s:– Cache Visualizer (Yijun Yu)– Vtune (Intel)
• Thesis van Bart Kerkhof: Exploratie van de mogelijkheden van de
huidige visualizer
• Meetmethodes:– M.b.v. performance counters– Simulatie
Soorten cachemissers
• Koude misser– Treedt op wanneer de data voor de eerste
maal gelezen worden en dus nog niet in de cache zitten
• Capaciteitsmisser– Een misser die optreedt omdat de cache vol
zit
• Conflictmisser– Een misser die optreedt omdat de cachelijn
reeds vol zit
Bestaande Cache Visualizer
Broncode editor
Visualisatie van missers/treffers
Visualisatie van gerefereerde variabelen
3. Aanpak
Twee mogelijkheden om cachegedrag te meten
Programma
Geheugentoegangen
SimulatiePerformance
Counters
Visualisatie
Cache Visualizer VTUNE
3.1 Performance counters
Gebeurtenis opgeven Periode opgeven
teller instellen Programma starten/ verderzetten
Programma onderbreken en
sample wegschrijvenBuffer verwerken
Periode afgelopen
Buffer vol
Buffer niet vol
CPU_CYCLES
L1D_READS_RETIRED
Performance counters
• Voorbeeld: VTune (Intel)
• Voordeel: – Weinig vertraging
• Nadelen: – Niet geschikt om individuele cachetoegangen
te bestuderen– Geen informatie beschikbaar over het type
cachemisser– Bij te frequente gebeurtenissen (events),
mogelijk teveel overhead
3.2 Simulatie
• Opmeten van het aantal missers/treffers met behulp van gesimuleerd cachemodel
• Vb: Cache Visualizer (door Yijun Yu)
• Nadelen: – zeer traag– De resultaten kunnen afwijken van de
werkelijke prestatie van de cache
3.2 Simulatie• Voordelen:
– Individuele geheugentoegangen kunnen onderscheiden worden
– Verschillende cachemodellen kunnen gesimuleerd worden
– De verschillende soorten missers zijn te onderscheiden
4. Realisaties
• Versnelling en integratie van bestaande Cache Visualizer in Eclipse IDE
• Traces converteren naar figuren in standaardformaat: PNG
• Programma om metingen te doen met performance counters
• Programma voor grafische weergave van de realtime metingen
1000000000L2_MISSESL3_MISSESLINENO
13952748,3416357,scanner.c:47628456961,6937142,scanner.c:40756963642,13950573,scanner.c:47671283886,17495803,scanner.c:43685618836,21047356,scanner.c:11399935266,24605227,scanner.c:476114290946,28166761,scanner.c:414128681018,31699757,scanner.c:476142848486,35227640,scanner.c:449157050601,38763117,scanner.c:444171235673,42274522,scanner.c:452185382860,45750779,scanner.c:476199332968,49281765,scanner.c:476213362325,52824845,scanner.c:476227464823,56323493,scanner.c:468241407246,59877660,scanner.c:475255292739,63429075,scanner.c:476269358947,66914016,scanner.c:476283677975,70414311,scanner.c:476297913997,73924201,scanner.c:476311970524,77441248,scanner.c:407326073246,80944903,scanner.c:476340193888,84454578,scanner.c:476354258270,87965553,scanner.c:476368591983,91477793,scanner.c:476382790990,95017232,scanner.c:407…
1000000000L2_MISSESL3_MISSESLINENO
0x0000000000d4e6ec 0x0000000000342125 0x0000000001b23801 0x000000000069da36 0x0000000002879d6c 0x0000000000a01cff 0x000000000365323a 0x0000000000d4de6d 0x00000000043fb4ae 0x00000000010af6fb 0x00000000051a7094 0x000000000141283c 0x0000000005f4e422 0x000000000177722b 0x0000000006cff102 0x0000000001adca69 0x0000000007ab843a 0x0000000001e3b32d 0x000000000883b1e6 0x00000000021987f8 0x00000000095c66e9 0x00000000024f7a6d 0x000000000a34d959 0x0000000002850eda 0x000000000b0cb7cc 0x0000000002ba19fb 0x000000000be19468 0x0000000002effae5 0x000000000cb7a695 0x0000000003260b0d …0x00000000496003f1 0x000000001186b01b 0x000000004a4d4429 0x0000000011bcebcc ---split---/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:476/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:407/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:476/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:436/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:113/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:476/export/home1/pds02/jovermei/benchmarks/179.art/src/scanner.c:414…
4.2 Metingen met hardwaretellers
MeetperiodeOpgemeten gebeurtenissen
Niveau-2 cachemissers
Niveau-3 cachemissers
Lijnnummers
Broncode editor
Navigator
Keuzemenu voor grafische voorstelling
Parameters voor metingen
4.2 Metingen met hardwaretellers