realtime cache visualisatie

22
Realtime cache visualisatie Joachim Vermeir Begeleiders: lic. K. Beyls, Dr Y. Yu Promotor: Prof. Dr. ir. E. D’Hollander

Upload: cody-duffy

Post on 01-Jan-2016

43 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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

4.1 Resultaat van simulatie

Soort cachemisserLokaliteitNaam van de variabele

Broncode editor

Navigator

Visualisatie treffers/missers

4.1 Visualisatie van simulatie

Voorbeeld van gevisualiseerde trace

broncode

Na inzoomen

capaciteitsmisser

Treffer

Koude misser

Conflictmisser

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

4.3 Mogelijke visualisaties

Besluit

• Beide technieken van opmeten hebben hun voor- en nadelen

• Met hardwaretellers kan men reeds de knelpunten in een programma aanduiden

• Wenst men meer detail, dan moet men simulatie gebruiken