39
Informatica — Universiteit van Amsterdam Supervisor(s): Andy Pimentel (UvA) Signed: Andy Pimentel (UvA) Lex de Vries 18 juni 2008 Het off-line trainen van signatuur- gebaseerde prestatie modellen Bachelor Informatica

Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Embed Size (px)

Citation preview

Page 1: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Informatic

a—

Univ

ersi

teit

van

Amst

erdam

Supervisor(s): Andy Pimentel (UvA)

Signed: Andy Pimentel (UvA)

Lex de Vries

18 juni 2008

Het off-line trainen van signatuur-gebaseerde prestatie modellen

Bachelor Informatica

Page 2: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

2

Page 3: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Inhoudsopgave

1 Inleiding 5

2 Sesame 72.1 Latency tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Signatuur-gebaseerde modellen 113.1 Generic Instruction Set Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Applicatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4 Het experiment 154.1 Beschrijving van het experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.1.1 Trainingsset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.1.2 Testmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.1.3 Model check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.1.4 Modelvalidatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5 Model optimalisatie 235.1 Clustering op basis van eerder model . . . . . . . . . . . . . . . . . . . . . . . . . 235.2 Clustering op basis van benchmark grootte . . . . . . . . . . . . . . . . . . . . . 255.3 Clustering op basis van overeenkomst met M-JPEG . . . . . . . . . . . . . . . . 265.4 Niet-negatieve kleinste kwadraten . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.5 Klassenverfijning gISA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6 Conclusie 316.1 Toekomstig werk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

A Scripts 33A.1 sig.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33A.2 get latencies.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33A.3 checksig.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33A.4 nnls.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

B Gemeten data 35

3

Page 4: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

4

Page 5: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 1

Inleiding

In het gebied van embedded systemen is er een grote behoefte aan snelle simulaties om eenindicatie te krijgen van welke architecturen bij welke applicaties meer danwel minder geschiktzijn. De markt van embedded systemen gaat erg snel en om die bij te houden is het belangrijk dater in het begin van het ontwikkelproces erg snel belangrijke beslissingen gemaakt worden. Of erbijvoorbeeld een groot voordeel op zal leveren om bepaalde functies in hardware te implementerenof juist meer gebruik te maken van programmeerbare processoren. Er wordt gewerkt aan tools diede modellering en simulaties die bij dit proces zo van belang zijn te ondersteunen en gemakkelijkerte maken. Een van deze tools is Sesame [5].Deze scriptie beschrijft een onderzoek naar de mogelijkheden op het gebied van signaturen omapplicatieprocessen en processoren te beschrijven. Er zal getracht worden om aan de handvan training met behulp van een benchmark suite een signatuur te berekenen voor een ARMprocessor. Deze signatuur zal gevalideerd worden tegen een bekend model. Een soortgelijkonderzoek is beschreven in [1], echter; daar wordt een model opgesteld dat enkel toepasbaar isop het ARM platform. Het doel van dit onderzoek is te kijken of het mogelijk is om de aanpakte gebruiken in een platform onafhankelijke situatie.In het begin van deze scriptie zal gebruik gemaakt worden van een Motion-JPEG applicatie(M-JPEG; een encoder applicatie) casus als lopend voorbeeld. Een reden hiervan is dat de M-JPEG applicatie al in de benodigde vorm is gegoten en er al de nodige statistiek over bekendis. Verder is M-JPEG de applicatie waarvandaan het ijkmodel komt. In de volgende sectie zalSesame beschreven worden en het probleem uitgediept worden. Vervolgens wordt uitgelegd watsignatuur-gebaseerde modellen zijn en er zal worden verteld hoe het testen van deze modellen inzijn werk gaat. Daarna worden de resultaten van de tests gegeven en deze worden besproken. Inde laatste sectie wordt de conclusie getrokken.

5

Page 6: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

6

Page 7: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 2

Sesame

Omdat de design space van embedded systems erg groot is en het maken van beslissingen op datgebied al vroeg in het ontwikkelproces grote gevolgen heeft is een snelle en efficiente onderzoeks-methode van de totale onderzoeksruimte gewenst. Sesame (Simulation of Embedded SystemArchitectures for Multi-level Exploration) is een model-gebaseerde simulatieomgeving voor em-bedded systems. In Sesame wordt gebruik gemaakt van twee modellen om een embedded systeemte modelleren, een architectuur- en een applicatiemodel. In het architectuur model wordt de tesimuleren architectuur gemodelleerd door middel van processoren, geheugens en communicatiekanalen. Zie figuur 2.1 voor een diagram van het model waarop de M-JPEG applicatie wordtgesimuleerd. Te zien is dat er een architectuur gebruikt wordt waarin vier processoren (P1 toten met P4), allemaal via hun eigen buffer (B1 tot en met B4) communiceren via een crossbar.De applicatie wordt gemodelleerd door middel van een Kahn Process Network (KPN). Een KPNbestaat uit een verzameling losstaande processen die met elkaar communiceren via fifo-kanalen.Kahn processen kunnen van zo’n fifo-kanaal lezen en ernaar schrijven, de leescommando’s zijnblocking, schrijfcommando’s niet. Het grote voordeel is dat applicaties die gemodelleerd zijn ineen KPN deterministisch zijn. Dat wil zeggen dat een applicatie altijd, onafhankelijk van hoedeze gescheduled wordt op een onderliggende architectuur, bij eenzelfde input altijd dezelfdeoutput heeft. Een bijkomend voordeel van de KPN benadering is dat deze erg geschikt is voorhet modelleren van multimedia applicataties, wat ook het applicatie domein is waar Sesame opgefocused is. In figuur 2.2 is het Kahn procesnetwerk van de M-JPEG applicatie weergegeven.De applicatie is opgedeeld in zes aparte processen, de communicatiekanalen tussen de processenzijn gevisualiseerd door middel van pijltjes. DCT staat voor Direct Cosine Transform, een heelbelangrijk en computationeel zwaar onderdeel van M-JPEG. Q is een kwantizatie-proces en VLEstaat voor Variable Length Encoding.

Figuur 2.1: Architectuurmodel

P1 P4P2 P3

Crossbar

B1 B2 B3 B4

7

Page 8: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 2.2: M-JPEG in KPN vorm

VidInMain DCT

VidInInit

Q VLE

VidOut

Een simulatie in Sesame heeft nog een onderdeel nodig naast het architectuur- en applicatie-model; een zogenaamde mapping. De mapping beschrijft welk Kahn Proces op welke processorwordt uitgevoerd en welke fifo-kanalen op welke geheugens en bussen worden gemapped. In fi-guur 2.3 wordt de mapping met behulp van de M-JPEG applicatie weergegeven. Bovenin staathet KPN van M-JPEG en onderin de architectuur. Te zien is dat de processen van VidInMain,VidInInit en VidOut op dezelfde processor (P4) gemapped zijn en dat de andere processen ver-deeld zijn over de de overige processoren. Omdat dit onderzoek zich alleen bezighoudt met eenoptimalisatie van het processor model is in dit diagram de mapping van de fifo-kanalen achter-wege gelaten. De overige onderdelen uit het diagram zullen direct besproken worden.Tijdens een simulatie voor een bepaalde mapping genereert een proces uit het KPN een zoge-naamde event trace (de stapeltjes in de mapping-pijltjes in figuur 2.3). Zo’n event trace is eenrij van read, write en execute commando’s. De read en write commando’s geven aan dat hetproces leest of schrijft van of naar het fifo-kanaal. De execute events hebben een parameterwaarin staat wat voor functie of commando wordt uitgevoerd. De onderliggende architectuursimulator gaat dan voor elk read en write commando op zoek naar de latency, die wordt bepaalddoor synchronsatie tijden, contentie tijden, en de latencies van het netwerk en het memory enbuffer. De execute commando’s krijgen een argument mee waarin staat wat er uitgevoerd moetworden. Voor elk execute commando gaat de simulator in de latency tabel (zie sectie 2.1) vande processorcomponent opzoeken hoeveel cycles de uit te voeren actie kost. Een stuk uit delatency tabel van P1 staat weergegeven in het diagram in figuur 2.3. De totale simulatie bestaatdus slechts uit het ophalen van latencies uit tabellen uit het architectuurmodel. Deze latenciesworden bij elkaar opgeteld en zo wordt een totale cycle count berekend voor de mapping.Een simulatie zoals deze hierboven beschreven is wordt een trace-driven simulatie genoemd. Hetgrote voordeel van zo’n simulatie is het applicatie- en architectuurmodel van elkaar gescheidenzijn. Zo is het heel makkelijk verschillende architecturen in combinatie met eenzelfde applicatiete simuleren (of andersom). Die mogelijkheid is erg belangrijk bij een snelle en efficiente ontwerpexploratie. Een nadeel van de latency tabellen is dat er geen informatie uit het getal te halen is,met betrekking tot hoe deze tot stand is gekomen. Er is een keer een meting gedaan en daar is ditgetal uitgekomen, verder zegt het niets over de taak of over de processor. In de volgende sectiewordt beschreven hoe mijn onderzoek gaat trachten deze methode te verbeteren met behulp vansignatuur-gebaseerde modellen. Het voordeel van deze modellen zal zijn dat er duidelijk is hoeeen taak is opgebouwd en wat de mogelijkheden van de processor zijn. Aan de hand daarvankan een latency berekend worden waarvan bekend is hoe deze tot stand is gekomen.Een ander voordeel van de signatuur-aanpak is dat er makkelijk onderzocht kan worden wat ergebeurt als bijvoorbeeld floating point of memory operaties een stuk duurder worden.

2.1 Latency tabellen

In het huidige Sesame wordt, zoals hierboven beschreven, een architectuur gemodelleerd metprocessor en geheugen componenten. Elk van de processor componenten bevat een latency tabel.Hierin staat voor elke actie hoeveel cycles deze actie op de gemodelleerde processor kost. Delatencies zijn op een vrij hoog niveau van abstractie. In het voorbeeld van M-JPEG staan er6 waarden in de tabel voor onder andere het hele DCT proces. In normale situaties zijn delatencies op functie niveau. Elke computationele functie binnen een KPN proces krijgt dan zijneigen execute event. Dit kunnen meer dan een per KPN proces zijn. De getallen in de tabel zijnverkregen door low-level simulaties te doen of door te meten op bestaande hardware waarin een

8

Page 9: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 2.3: Sesame

P1 P4OPQ

#C45

VidInMain DCT

VidInInit

Q VLE

VidOut

P2 P3

Crossbar

B1 B2 B3 B4

cycle count wordt bepaald. Ook kan technische documentatie een bron zijn waaruit de latenciesverkregen worden.

9

Page 10: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

10

Page 11: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 3

Signatuur-gebaseerde modellen

Om het concept van signaturen te begrijpen wordt in sectie 3.1 eerst de notie van een generic In-struction Set Architecture (gISA) geıntroduceerd. Verder wordt er bij signaturen het onderscheidgemaakt tussen twee soorten signaturen. Enerzijds zijn er de applicatiesignaturen, anderzijdsarchitectuursignaturen. In twee volgende secties zullen beide signaturen toegelicht worden en erzal verteld worden hoe de twee signaturen samen komen met als doel een prestatievoorspelling.

3.1 Generic Instruction Set Architecture

De instructie set van een processor is erg uitgebreid en bevat veel verschillende instructies. Eenabstracte instructie set is een kleine set instructies waarop de totale instructie set gemappedwordt. Zo kunnen bijvoorbeeld verschillende geheugen instructies gemapped worden op eenabstracte instructie en alle floating-point operaties op een andere abstracte instructie.In dit onderzoek worden de instructies van de normale instructieset gemappen op instructiesuit de zogenaamde generic Instruction Set Architecture, kortweg gISA [2]. Een overzicht van degISA instructies is te vinden in tabel 3.1.In de volgende twee secties zullen respectievelijk de applicatie- en archtitectuursignatuur geıntro-duceerd worden.

3.2 Applicatie

De applicatiesignatuur beschrijft in het kort en op vrij hoog niveau de computationele complexi-teit van een applicatieproces. Deze complexiteit wordt beschreven aan de hand van aantallenabstracte instructies uit gISA. Een signatuur van een applicatieproces is een serie van elf getallendie per categorie uit gISA staan voor het aantal instructies in die categorie. De signatuur van hetDCT proces uit het M-JPEG voorbeeld is; [0,48967,3370,99039,0,63632,580686,0,0,0,0].Het DCT proces bevat dus uit 48967 instructies die op de abstracte BMEM instructie gemappedworden, 3370 die op MEM gemapped worden, etcetera. Informatie die uit deze signatuur gehaaldkan worden is dat het DCT proces vooral bestaat uit instructies van het type ISIMPLE. De sig-natuur van een applicatie kan gemeten worden door middel van een instructie-niveau simulatie.Tijdens deze simulatie wordt iedere instructie gemapped op zijn categorie en wordt er voor elkecategorie bijgehouden hoeveel instructies er tot nu toe op gemapped zijn.In dit onderzoek is er gebruikt gemaakt van SesameISS, een tool geschreven door V.S. Jaddoe [2].Deze tool gebruikt een ISS (instructie set simulator) om de instructie-niveau simulatie te doen.Tijdens de simulatie mapped SesameISS de instructies op hun bijbehorden gISA instructie enhoudt de nodige informatie bij. SesameISS kan de simulatie op meerdere manieren afhandelen.In dit onderzoek is vooral gebruik gemaakt van de zogetehen signature-handler. Deze handlergeeft aan het einde van de simulatie de signatuur en totale cycle-count van de gesimuleerdeapplicatie terug.

11

Page 12: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

gISA opcode beschrijving0 UNDEFINED Ongebruikte ‘sentinel’ instructie.

Deze instructie komt per definitienooit voor.

1 BMEM Block memory operaties, ge-bruikt voor het verplaatsten vanblokken van variabele grootte inhet geheugen.

2 MEM Geheugeh operaties op blokkengeheugen van vaste grootte, zo-als het laden verplaatsen van ge-heugen naar register.

3 BRANCH Alle branch instructies, bijvoor-beeld system-calls.

4 COPROC Alle instructies die worden uitge-voerd op een co-processor. Bij-voorbeeld floating point opera-ties op bij een ARM processor

5 IMUL Alle vermenigvuldigingen met in-tegers.

6 ISIMPLE Alle ’simpele’ operaties op in-tegers, zoals optellen, aftrekken,verplaatsen, etc.

7 SPECIAL1 Een opcode voor instructies dieniet in een van de andere catego-rieen hoort.

8 SPECIAL2 Nog een opcode voor instructiesdie niet in een van de andere ca-tegorieen hoort.

9 SPECIAL3 En nog een opcode voor instruc-ties die niet in een van de anderecategorieen hoort.

10 UNKNOWN Alle instructies die niet door despecificatie in een van de ande-re catogrieen wordt ingedeeld ko-men in deze categorie terecht.

Tabel 3.1: Een overzicht van de categorieen van gISA.

3.3 Architectuur

Een architectuursignatuur is de tegenhanger van de applicatiesignatuur. Waar de signatuur vaneen applicatie beschrijft wat de complexiteit is van de applicatie, beschrijft de signatuur van eenprocessor de computationele capaciteit van de processor. Een architectuursignatuur is dus ookeen vector van lengte 11. Elk getal in de vector geeft voor elk instructietype uit gISA aan hoeveelcycles een instructie van dat type gemiddeld kost.Er is geen eenduidige manier een architectuursignatuur op te stellen aan de hand van metingenen simulaties, zodat deze gegarandeerd klopt. De methode die in dit onderzoek gebruikt is omarchitectuursignaturen te berekenen (en te valideren) komt aan bod in het volgende hoofdstuk.Een voordeel van het gebruik van signaturen in een systeem zoals Sesame is dat er in plaats vandoor middel van een symbolische execute event trace (in combinatie met een latency tabel) nueen cycle count berekend wordt door middel van een inproduct van een architectuur en applica-tiesignatuur. Op deze manier kan door het veranderen van bepaalde waarden in de architectuurdirect waargenomen worden wat daarvan de invloed is; wat gebeurt er bijvoorbeeld als de floa-ting point operaties een stuk duurder worden, of memory instructies goedkoper. Een bijkomend

12

Page 13: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

voordeel is dat er van ’onbekende’ execute events ook een latency berekend kan worden. In hetsysteem waarbij voor elk execute event een latency opgezocht wordt in een tabel is dat niet zo,omdat er dan geen latency bekend is.

13

Page 14: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

14

Page 15: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 4

Het experiment

De onderzoeksvraagstelling die in deze scriptie wordt geadresseerd, luidt alsvolgt: kunnen wede architectuursignatuur bepalen door middel van een externe trainingsset, bestaande uit eenreeks multimedia benchmarks, om die vervolgens toe te passen op een applicatie (in dit gevalM-JPEG), die zich niet in de trainingsset bevindt.

4.1 Beschrijving van het experiment

Nu de benodigde voorkennis is uitgelegd, kan het experiment waarmee we de onderzoeksvraag-stelling willen beantwoorden beschreven worden. Het hele experiment bestaat uit meerdere delen.

• Het verkijgen van een trainingsset;

• het berekenen van een architectuursignatuur aan de hand van de trainingsetmetingen (dezesignatuur zullen we een model noemen). Dit model zal berekend worden aan de hand vanlineaire regressie;

• het valideren van het model;

• indien het gewenste resultaat niet behaald wordt, het model aanpassen en opnieuw valide-ren.

Deze gang van zaken staat schematisch weergegeven in figuur 4.1. In de volgende sectie wordende eerste drie processen per stuk behandeld. Verder wordt er een andere manier van het checkenvan het model beschreven. Het laaste punt, de verkregen resultaten analyseren en veranderenom tot een beter resultaat te komen wordt besproken in het volgende hoofdstuk.

4.1.1 Trainingsset

Deze stap wordt gerepresenteerd door het linker gedeelte van het schema in figuur 4.1. Omdat ergewerkt wordt op het gebied van multimedia is er besloten om het verkrijgen van een trainingssette doen aan de hand van de zogeheten Mediabench. Mediabench is een verzameling programma’s,benchmarks, met een multimedia achtergrond [6]. Hieronder staat een overzicht van de gebruiktebenchmarkprogramma’s, zie voor de totale instructiecounts per programma de bovenste plot vanfiguur 5.4.

JPEG JPEG is een gestandaardiseerde compressiemethode voor kleur- en zwart-wit plaatjes.Het is een lossy compressiemethode, wat wil zeggen dat er data verloren gaat bij het enco-deren en decoderen, en in- en outputplaatjes zijn daardoor niet identiek. De applicaties vanJPEG die gebruikt zijn zijn cjpeg en djpeg, verantwoordelijk voor respectievelijk encoderenen decoderen.

15

Page 16: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 4.1: Het experiment, schematisch

Mediabench

Architectuur signatuur

Motion-JPEG

Validatie

Signatuur gebaseerd

Gedetailleerde simulatie

MPEG2 MPEG2 is de dominante standaard voor het versturen van digitale video. De tweeapplicaties van MPEG2 zijn mpeg2enc en mpeg2dec, veranwoordelijk voor respectievelijkencoderen en decoderen.

G.721 Voice Compression G.721 is een implementatie van het CCITT (International Tele-graph and Telephone Consultative Committee) stem compressies. De twee applicaties zijndecode en encode.

PEGWIT PEGWIT wordt gebruikt voor public key encryptie en authenticatie programma’s.Gebruikt zijn de encodeer- en decodeerprogramma’s pegwitenc en pegwitdec.

MESA MESA is een kloon van de 3D-graphics library van OpenGL. De applicatie die hiervangebruikt is is mipmap, deze applicatie voert texture mappings uit.

RASTA RASTA is een programma voor spraak herkenning. Er worden verscheidene transfor-maties uitgevoerd. De applicatie die gebruikt wordt heet rasta.

EPIC EPIC is een experimentele image-compressie methode. De filters die gebruikt wordenzijn ontworpen om snelle decodering toe te passen zonder het gebruik van floating pointhardware. De gebruikte applicaties zijn epic en unepic.

ADPCM ADPCM staat voor Adaptive Differential Pulse Code Modulation en is een van deoudste en simpelste manier van audio codering. De gebruikte applicaties van ADPCM zijnrawcaudio en rawdaudio.

De eerste stap in het opstellen van een lineaire regressie model is het verkrijgen van eenset van applicatiesignaturen en bijbehorende totale cyclecounts. Zoals in sectie 3.2 staat wordter in dit onderzoek hierbij gebruik gemaakt van SesameISS. Om aan SesameISS aan te gevenaan welke stukken van de applicatie gemeten moet worden, worden zogenaamde EXEC MARKERSgebruikt. Een EXEC MARKER is eigenlijk niets meer dan het commando om register 1 naar register1 te verplaatsen (in C te programmeren door de regel asm volatile("mov r1, r1")). Dezeinstructie komt niet in gewone programma’s voor, dus als de simulator de instructie tegenkomtweet hij dat het een EXEC MARKER is. In dit onderzoek is er, in de meeste gevallen, gekeken naartotaal gedrag van de applicaties. Dat wil zeggen dat er boven de eerste instructie en onder delaatste een EXEC MARKER is toegevoegd. Er is een uitzondering, mpeg2enc; deze applicatie was tegroot om in een keer te meten en is daarom in vier aparte stukken verdeeld.De resulaten van alle metingen zijn weergegeven in figuur 4.2. Dit histogram laat zien voor elkebenchmark hoeveel procent van het totaal aantal instructies de count van elke gISA instructie is.

16

Page 17: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Wat opvalt is dat de de meeste benchmark programma’s gedomineerd worden door ISIMPLE en,in mindere mate, MEM instructies. In appendix B staan alle resulaten in een tabel. De waardenin de tabel zijn de gemeten waarden, dus geen percentages zoals in de plot.

17

Page 18: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Fig

uur

4.2:

Res

ulta

ten

van

dem

etin

gen

aan

Med

iabe

nch

18

Page 19: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

4.1.2 Testmodel

Nu er genoeg data verkregen is kan er een testmodel gemaakt worden. Een testmodel is eenarchitectuursignatuur, die in de volgende stap vergeleken wordt met een model waarin alle executeevent latencies direct op een instructie set simulator bepaald zijn en daardoor vrij nauwkeurigzijn..Aan de hand van een gegeven trainingsset kunnen we een schatting van een goede architectuursignatuur (een model) maken. Dit doen we door het systeem te beschouwen als een lineairsysteem. Er zijn methoden die, gegeven een verzameling meetpunten A (in dit geval een matrixmet op elke rij een applicatiesignatuur) en een bijbehorende vector uitkomsten b (dus in dit gevaleen vector met cyclecounts) een vector x berekent waarvoor geldt dat Ax = b. Omdat er vaakgeen exacte oplossing voor deze vergelijking is dient deze geschat te worden. In dit onderzoekis gebruik gemaakt van de kleinste kwadraten schatter. Deze methode zoekt een model zodatgeldt dat de verschillen tussen de uitkomsten van de vergelijking (dus de uitkomst van Ax) ende gemeten waarden (de waarden in vector b) zo klein mogelijk zijn. Omdat de verschillen zowelnegatief als positief kunnen zijn wordt het kwadraat van het verschil genomen (vandaar de naam,kleinste kwadraten).Het concept wordt verduidelijkt met een klein voorbeeld. Stel dat er twee kleine processen zijn,proc1 en proc2, met respectievelijk [0, 4, 12, 11, 2, 3, 9, 0, 0, 0, 0] en [0, 12, 5, 32, 9, 0, 5, 0,0, 0, 0] als applicatiesignaturen. De totale cyclecounts zijn 245 en 425. De processen wordenuitgevoerd op een processor, P , met een signatuur sigP . Deze informatie is samen te vatten inhet volgende systeem:(

0 4 12 11 2 3 9 0 0 0 00 12 5 32 9 0 5 0 0 0 0

)· sigP =

(245425

)(4.1)

Dit systeem kan met lineaire regressie worden opgelost. Het resultaat sigP in dit systeem is [0,3.55, 6.12, 9.62, 2.21, 1.34, 4.77, 0, 0, 0, 0].Het eerste testmodel dat gemaakt is, is gebaseerd op de gehele trainingsset. Er is gebruik gemaaktvan een Python scriptje die dat doet. Voor een beschrijving van het script, zie appendix A.1. Eennadeel van het gebruik van de kleinste kwadraten schatter is dat de resultaatvector negatievegetallen kan bevatten. Op dit probleem wordt verder ingegegaan in het volgende hoofdstuk(sectie 5.4).

4.1.3 Model check

Het verkregen model is er eentje die het best mogelijk is, dat wil zeggen; degene waarvoor detotale afstand van het model tot de meetpunten zo klein mogelijk is. Nu is de vraag hoe goedzo’n model eigenlijk is en hoe groot die afstanden zijn. Dit geeft geen duidelijk of eenduidig beeldvan hoe goed het model werkt in de echte validatie zoals die beschreven wordt in de volgendesectie, maar het geeft wel een beeld van welke meetpunten goed in het model passen en welkejuist minder. In hoofdstuk 5 zal ook beschreven worden hoe deze methode van het checken vaneen model gebruikt wordt in het analyseren en eventueel verbeteren van een model.Om de check te doen wordt het inproduct van de signatuur van de architectuur en die van eenbenchmarkprogramma. Zo wordt een cyclecount berekend die vergeleken kan worden met degemeten cyclecounts. Als het goed is zijn de verschillen tussen berekende waarden en gemetenwaarden niet groot. Voor deze checks is gebruik gemaakt van een scriptje dat beschreven wordtin appendix A.3.

4.1.4 Modelvalidatie

Het valideren van het zojuist verkregen model gebeurt in 2 stappen. Omdat er nog geen versievan Sesame is die direct met signaturen kan rekenen wordt er een tussenstap gebruikt. Voor hetmodel waartegen gevalideerd wordt zijn er instructie-niveau simulaties gedaan, daarin is voorelk KPN proces van M-JPEG een cyclecount en een applicatiesignatuur gemeten. Door de cy-clecounts van deze simulaties in te vullen in de latency tabel van Sesame wordt er een accuraatmodel waartegen gevalideerd kan worden verkregen. Dit model, het ijkmodel, blijft voor de restvan het proces hetzelfde. Dat is belangrijk, omdat er anders misschien twee testmodellen tegen

19

Page 20: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

een verschillend model gevalideerd worden, wat uiteraard niet wenselijk is.Om een indicatie te krijgen of de trainingsset een geschikte set is kan er gekeken worden naarde overeenkomsten in de structuur van de benchmarkprogramma’s en de M-JPEG applicatie. Infiguur 4.2 staat weergegeven hoe de abstracte instructies zich tot elkaar verhouden. Zo’n zelfdeplot is gemaakt voor de M-JPEG applicatie, zie figuur 4.3 (voor een tabel met meetwaarden vanM-JPEG, zie appendix B). Wat in deze figuur te zien is, in vergelijking met figuur 4.2 is datde trends in beide figuren ongeveer gelijk zijn. De processen in M-JPEG en de programma’sin Mediabench bestaan allemaal voor een groot deel uit een combinatie van MEM en ISIMPLEinstructies. Een conclusie is dat de keuze tot het gebruiken van Mediabench als trainingsset eenvalide keuze is.

20

Page 21: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Fig

uur

4.3:

Stru

ctuu

rM

-JP

EG

appl

icat

ie

21

Page 22: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Zoals gezegd zijn er voor elk KPN proces in M-JPEG ook signaturen beschikbaar. Doorhet inproduct te nemen van deze applicatiesignatuur en de berekende architectuursignatuur (hette testen model), wordt er een totale cyclecount berekend. Door de cyclecounts van alle KPNprocessen in de latency tabel van Sesame in te vullen kan het model getest worden.De totale cyclecount van het ijkmodel in dit onderzoek is 1088189165. De bijbehorende latencytabel is [57,7007,1041690,141599,237575,99727]. Deze latency tabel geeft dus, per KPN proces,aan wat zijn cyclecount is. Het eerste resultaat uit dit onderzoek is deze architectuursigna-tuur; [0.0, -8.1590, 1.1205, 1.5557, 9.1134e+02, 4.8490e-01, 1.6815, 1.4081e+02, 9.0949e-13, 0.0,2.9467e+03] met bijbehorende latency tabel; [ 3,4639,765611,53386,68400,37260]. Dus het VidI-nInit proces kost 3 cycles, het VidInMain 4639, DCT 765611, etcetera. Deze tabel is tot standgekomen via bovenstaande methode; aan de hand van het inproduct van de gemeten applicatie-signaturen van de KPN processen en een architectuursignatuur die berekend is uit alle data vanMediabench. De totale cycle count met deze latency tabel is 805161992. Deze cyclecount is 26%lager dat die van het ijkmodel.

22

Page 23: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 5

Model optimalisatie

Als de uitkomsten van de validatie van het model niet naar wens zijn moet het model verbeterdworden. Zoals beschreven in de laatste sectie van het vorige hoofdstuk was dat in dit onderzoekook het geval.Er zijn meerdere methoden om een model aan te passen. Een ervan is het clusteren van degebruikte data. Een andere methode is het vergroten van de trainingsset. Dit kan op twee ma-nieren; meer benchmarkprogramma’s of de huidige set benchmarkprogramma’s verfijnder door-meten door middel van het plaasten van meerdere EXEC MARKER. Het nadeel van de eerste manieris dat er dan programma’s buiten Mediabench gezocht moeten worden, terwijl er expliciet ge-kozen was voor multimedia gerelateerde programma’s. Nadeel van de tweede manier is dat ereen duidelijker inzicht van de betreffende programma’s gewenst is. Omdat dit onderzoek geenonderzoek is naar de werking en samenstelling van programma’s van Mediabench is er gekozenvoor de eerstgenoemde methode; clustering (zie sectie 5.1). Natuurlijk sluiten de methoden vanclustering elkaar niet uit en kan er ook een combinatie van de methoden gebruikt worden om eenclustering te maken. Een probleem dat al kort aangestipt werd in sectie 4.1.2 en dat al optradin het eerste model is dat er negatieve getallen in de architectuursignatuur voor kunnen komen.Dit komt door de manier waarop we deze berekenen; de beste fit, berekend door de kleinste kwa-draten schatter, aan de hand van een verzameling meetwaarden kan negatieve waarden bevatten.Er is een alternatieve methode, de zogenaamde non-negative least squares method, deze wordtbeschreven in sectie 5.4.

5.1 Clustering op basis van eerder model

Om een clustering te kunnen maken moeten er eerst bepaalde redenen zijn elementen uit detrainingsset in clusters in te delen. Dat kan bijvoorbeeld op basis van cache-gedrag van de ge-simuleerde programma’s. In dit onderzoek is er gekozen voor een clustering die gebaseerd is opstatistiek van het eerst berekende model. Een indicatie van hoe goed het model is kan worden ge-geven op de manier beschreven in sectie 4.1.3. Deze methode is toegepast en de resultaten ervanzijn weergegeven in figuur 5.1. Wat opvalt is dat er een groepje van programma’s is waarvoordit percentage erg klein is. Dit groepje (zogenaamde inliers) is als cluster gebruikt en daarvooris een nieuwe signatuur berekend.Het gebruikte cluster bestaat uit de programma’s epic, g721decode, g721encode, untaost, mesa-mipmap, mpeg2dec, vier keer mpeg2enc en rasta. De signatuur die uit deze training kwam is[0.0, -6.2573, 1.2146, 1.3379, 7.6390e+02, 1.1909, 1.5790, 1.3786e+02, 0.0, 0.0, 1.5478e+04]. Hieris ook weer een check van het model gedaan om een indicatie van de correctheid van het model.De resultaten hiervan staan in figuur 5.2. Hieraan is te zien dat een dergelijk model iets beterbij de data past. De programma’s die onderdeel waren van de trainingsset doen het allemaalnet iets beter dan degene die geen onderdeel waren. Een heel groot verschil is er echter niet.De latency tabel gebaseerd op de nieuwe signatuur is [10,4987,822894,51729,67173,36483]. Hetresultaat van een simulatie met deze latency tabel is 863816478 cycles. Dit resultaat ligt 20% en

23

Page 24: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

is iets beter dan het resultaat van het model gebaseerd op de hele trainingsset.

Figuur 5.1: Verschillen tussen model en gemeten data (hele trainingsset)

Figuur 5.2: Verschillen tussen model en gemeten data (inliers)

De tegenhanger van het hierboven beschreven cluster met inliers is een cluster met outliers. Indit cluster zitten de benchmark programma’s waarvoor het eerst berekende model (op basis vande hele trainingsset) een minder goede schatting maakte; rawcaudio, rawdaudio, unepic, toast,djpeg, cjpeg, pegwitdec, pegwitenc. Voor dit cluster is ook een signatuur berekend; [7.8268e-08,-3.8465, 6.1758e-01, -1.7268, -1.0464e-10, -1.3636e+01, 3.1078, 5.3728e+03, 0.0, 0.0, 0.0]. Infiguur 5.3 is te zien hoe goed de fit is. De bijbehorende latency tabel is [-1, -435, 579651, 57411,69719, 39516]. Een belangrijke opmerking bij deze latency tabel is dat er negatieve waarden inzitten. Omdat een negatieve latency onzinnig en omdat de waarden relatief niet groot zijn, zijndeze waarden op 0 gezet tijdens de simulatie. De uitkomst van de simulatie met deze signatuuris 614741910 cycles. Deze waarde ligt 43,5% van het ijkmodel af.

De volgende stap in het onderzoek is proberen uit te vinden waarom het model op basisvan de inliers beter werkt dan het model op basis van de hele trainingsset en de outliers. Erzouden meerdere redenen kunnen zijn; onder andere de grootte van de programma’s, het data-en instructiecache-gedrag en het aantal instructies per cycle zouden van invloed kunnen zijn. Er

24

Page 25: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 5.3: Verschillen tussen model en gemeten data (outliers)

is gekeken naar deze drie factoren. Er is gebleken dat de programma’s die in het cluster metde inliers zitten allemaal bij de wat grotere progamma’s horen. De mpeg2dec en mpeg2enc zijnrelatief erg groot en deze zijn allemaal aanwezig in het cluster. In de bovenste plot in figuur 5.4staat per programma de totale instructie count, de programma’s die in het inlier-cluster zittenzijn voorzien van een asterisk.In de tweede grafiek in figuur 5.4 is een overzicht van het percentage datacache misses per pro-gramma. Een opmerking hierbij is dat er maar een waarde is voor mpeg2enc, in tegenstellingtot bij de rest van de plots. Ook hier staan er bij de programma’s die in het cluster zitten eenasterisk. Duidelijk wordt dat op twee uitzonderingen na alle programma’s die in het inlier-clusterzitten minder dan 1% miss-ratio hebben.Verder is er gekeken naar hoe het aantal geexecuteerde instructies zich verhoudt tot het aantalcycles. In de onderste plot in figuur 5.4 staat per programma weergegeven hoeveel instructies erper cycle wordt uitgevoerd. De programma’s met een asterisk zijn wederom de programma’s inhet inlier-cluster. Ook hier valt op dat de programma’s in het cluster allemaal een relatief hogeinstructie per cycle hebben.Er zijn dus meerdere redenen aan te wijzen waarom de programma’s in het cluster zitten. Clus-ters gebaseerd op onderstaande figuren zouden er allemaal anders uitzien, zowel onderling alsvergeleken met het inlier-cluster. Toch lijkt er een correlatie te bestaan tussen het gebruiktecluster en de plots. In sectie 5.2 wordt een clustering beschreven die gebaseerd is op de groottevan de benchmark. De andere experimenten (clustering op basis van caching en aantal instructiesper cycle, etcetera) zijn niet gedaan in verband met tijdsgebrek.

5.2 Clustering op basis van benchmark grootte

Naar aanleiding van de bovenste plot in figuur 5.4 is er nog een clustering gemaakt en onderzocht.Het cluster met de grote programma’s bestaat uit alle programma’s met meer dan 500 miljoenuitgevoerde instructies; epic, g721decode, g721encode, toast, mipmap, mpeg2dec en vier keermpeg2enc. De signatuur berekend aan de hand van dit cluster is [-1.2154e-09, -3.2233, 1.3260,1.2446, 5.3093e+02, 1.7946, 1.4034, 1.3403e+02, 0.0, 0.0, 0.0]. In figuur 5.5 is de relatieve foutvan het model ten opzichte van de gemeten data te zien. Te zien is dat het model een vrij goedefit aan de data is. De latency tabel bij dit model is [20, 5246, 899081, 49716, 65833, 35637] ende gemeten cyclecount is 941828036. Dit is ongeveer 13,5% minder dan het ijkmodel.Er is ook een model berekend aan de hand van een cluster met alle kleine programma’s; rawcaudio,rawdaudio, unepic, untoast, djpeg, cjpeg, pegwitenc, pegwitdec en rasta. Het berekende modelis [-3.6354e-08, -1.7661, 6.6539e-01, -1.9243, -2.0053e+03, -2.1106e+01, 3.0698, 6.1009e+03, 0.0,

25

Page 26: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

0.0, -2.2445e+01]. De fout van dit model ten opzichte van de metingen zijn weergegeven infiguur 5.6. Opvallend is dat deze waarden in veel gevallen groter zijn dan die in figuur 5.5. Delatency tabel die bij dit model hoort is [-3 ,-4176, 164755, 56503, 69179, 39224], merk op dat denegatieve getallen in de latency tabel net als bij die van de outlier-cluster, op 0 gezet zijn. Decycle count is 189886666, daarmee ligt dit model 82,5% van het ijkmodel af. Hieruit blijkt datclustering op basis van alleen de grootte van de benchmarkprogramma’s een betere oplossing isdan de methode beschreven in sectie 5.1

5.3 Clustering op basis van overeenkomst met M-JPEG

Zoals in figuren 4.2 en 4.3 te zien is, is er een grote overeenkomst in de samenstelling van deM-JPEG applicatie en de benchmarkprogramma’s. Omdat bekend is dat het DCT-proces hetmeest belangrijke en bepalende proces is voor M-JPEG is het een overweging om aan de handvan het karakter van dat proces een clustering te maken van de trainingsset en zo een cluster opte stellen die zoveel mogelijk overeenkomt met het DCT-proces.Een nadeel van deze benadering is dat er nu een model opgesteld wordt aan de hand van dete simuleren applicatie. Dit is onwenselijk omdat we door middel van training met een gevari-eerde maar toepasselijke trainingsset een model willen opstellen dat geldt voor zoveel mogelijkverschillende applicaties. Om een beeld te krijgen van hoe goed deze aanpak zou werken is hetexperiment toch uitgevoerd.Hiertoe is eerst voor alle programma’s van Mediabench het verschil berekend tussen de opbouwvan het programma en het DCT-proces. Dit verschil is berekend aan de hand van in hoeverre deinstructiecounts per gISA instructie van elkaar verschillen. Vervolgens is er een selectie gemaaktvan programma’s waarvoor dat verschil klein genoeg was. Dit zijn vier programma’s geworden,te weten; epic, mesamipmap, mpeg2enc en rasta. Het berekende model is een heel goede fit aande data. In geen gevallen zit het model meer dan een miljoenste procent van de meting af.De signatuur gebaseerd op deze kleine trainingsset is [-1.4210e-14, -2.0374, 2.8268e-02, 1.0581,8.9815e-03, 3.3367, 1.5360, -9.1125e-02, 0.0, 0.0, 2.4851e-04]. De bijbehorende latency tabel is[8,4927,1109415,35068,41379,23784] en de berekende cyclecount is 1157158766 cycles. Deze cy-clecount ligt nog geen 7% van het ijkmodel af en is het beste model. Zoals eerder beschreven isdit een model die gebaseerd is op hoe de te simuleren applicatie eruit ziet. Het ligt dus voor dehand dat dat model een vrij goed model wordt. Dit experiment toont voornamelijk aan dat deM-JPEG applicatie duidelijk gedomineerd wordt door het DCT proces.

5.4 Niet-negatieve kleinste kwadraten

De niet-negatieve kleinste kwadraten schatter is een variant op de ’gewone’ kleinste schatterwaarin de beperking wordt opgelegd dat de getallen in de uitkomst niet negatief mogen zijn.Omdat, zoals beschreven in de vorige sectie, er in sommige gevallen negatieve getallen in designaturen terecht kwamen leek deze methode een goed alternatief. Negatieve getallen in designatuur kunnen op hun beurt weer leiden tot negatieve getallen in de latency tabel, wat ergonwenselijk is. In appendix A.4 staat beschreven hoe het script dat hiervoor gebruikt is werkt.Omdat de kleinste kwadraten schatter in z’n normale vorm het optimale model vindt is het logischdat het model alleen maar minder goed zal worden als er bepaalde beperkingen opgelegd worden.Dus de verwachting is dat het resultaat minder goed zal zijn. Dezelfde twee experimenten als bijde gewone kleinste kwadraten schatter zijn gedaan; een met de hele set en een met de set inliers.De resultaten van de checks van de modellen (in genoemde volgorde) zijn te zien in figuur 5.7.In dit figuur is te zien dat er in beide gevallen geen model gevonden kan worden waarbij de datagoed past. Vooral op basis van de hele set liggen alle meetpunten steevast rond de 90% van hetmodel af. De berekende signatuur aan de hand van de hele set is [0, 0, 0, 1.2885, 6.066, 0, 0, 0, 0,0.7581, 19.2649], en die van de inliers is [0, 3.7896, 0, 0.9687, 0, 2.7590, 0, 0, 14.7816, 0, 1.7300].Bijbehorende latency tabellen en cyclecounts zijn voor hele set [2,201,127612,6851,8513,4777] en151707672 cycles (86% van het ijkmodel af); voor de inliers; [16,1817,457076,5700,7564,4414],met 489077975 cycles (55% verschil met het ijkmodel).

26

Page 27: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Een waarneming hier is dat de outliers bij het model berekend met de gewone kleinste kwadra-tenschatter over het algemeen hier ook de outliers zijn. Verder is te zien dat het weglaten vandie outliers bij deze methode een veel grotere impact heeft dan bij de gewone kleinste kwadratenschatter.

5.5 Klassenverfijning gISA

Zoals in figuur 4.2 te zien is bestaan de meeste benchmarkprogramma’s voor 90% uit een com-binatie van MEM en ISIMPLE instructies. Dit zou erop kunnen duiden dat een verfijning van dieklassen nodig is. Het zou kunnen dat er teveel verschillende instructies op ISIMPLE gemappedworden, de mate van abstractie is dan te hoog. Als de categorie van ISIMPLE verder verfijndzou worden in bijvoorbeeld twee of drie klassen zou dit als gevolg hebben dat er een duidelijkerbeeld gegeven kan worden van hoe de complexiteit van de beschreven applicatie er uitziet. In eenvervolgonderzoek kan er gekeken worden naar hoe de instructies die op dit moment gemappedworden op bijvoorbeeld ISIMPLE verder onderverdeeld kunnen worden om zo een meer zeggendesignatuur te kunnen gebruiken.

27

Page 28: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 5.4: Totaal aantal instructies, datacache miss-ratio en instructies per cycle, per program-ma

28

Page 29: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 5.5: Verschillen tussen model en gemeten data (grote benchmarks)

Figuur 5.6: Verschillen tussen model en gemeten data (kleine benchmarks)

29

Page 30: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Figuur 5.7: Verschillen tussen niet-negatieve modellen en gemeten data (hele set, respectievelijkinlier-cluster

30

Page 31: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

HOOFDSTUK 6

Conclusie

Op basis van de resultaten van een op instructie-niveau gesimuleerde M-JPEG applicatie is ereen model opgesteld, bestaande uit een architectuursignatuur en een totale cyclecount voor M-JPEG. Vervolgens is er op basis van instructie-niveau simulaties van een verzameling multimediaapplicaties een traininigsset opgesteld en aan de hand daarvan zijn er verschillende architectuur-signaturen (modellen) berekend. Deze modellen zijn op correctheid getest door ze toe te passenop de M-JPEG applicatie en de totale berekende cyclecounts te vergelijken met de gemeten cy-clecount.Er zijn verschillende clusteringen en verschillende methoden om de modellen te berekenen ge-bruikt. De eerste clustering die gedaan is, is op basis van het model gebaseerd op de heletrainingsset. De programma’s waarvoor de met het model berekende waarde erg dicht bij dein simulaties gemeten waarden ligt zijn gebruikt voor het berekenen van een nieuw model. Hetnieuwe model blijkt een iets beter te werken, in zowel de mate waarin het model bij de datapast (dus hoeveel de gemeten en met het model berekende waarden overeenkomen) als in eendaadwerkelijke toepassing van het model. De tweede clustering is op basis van het totaal aantalgeexecuteerde instructies. Het cluster met de grote programma’s had een vrij goed resultaatterwijl het cluster met de kleine programma’s het erg slecht deed. Een andere cluster is er eendie bestaat uit benchmarkprogramma’s die overeenkomen met het meest invloedrijke proces uitM-JPEG (het DCT proces). Dit model werkt in een simulatie erg goed, maar dat ligt in de ver-wachting. Deze manier van clustering is niet gewenst in de toekomst, omdat het model opgestelddient te worden zonder kennis van de te simuleren applicatie.In de hiervoor beschreven experimenten is gebruik gemaakt van een kleinste kwadraten schatterom een model te vinden dat zo goed mogelijk bij de data past. Een nadeel van deze aanpak isdat er in het resultaat model negatieve getallen kunnen zitten. Omdat een negatieve cyclecountonwenselijk is leek het een oplossing de kleinste kwadraten schatter een beperking op te leggen,zodat het resultaat alleen maar positieve getallen mag bevatten. Er is met deze methode eenmodel berekend aan de hand van de hele trainingsset en aan de hand de eerst genoemde cluster.Een logisch gevolg van een beperking bij het vinden van een goed model is dat het gevondenmodel niet zo goed zal zijn als het optimale model. Dit is ook gebleken in de experimenten. Debeide experimenten waarbij de niet negatieve kleinste kwadraten schatter gebruikt is hadden eenstuk minder goed resultaat dan de eerder beschreven experimenten.Er is getracht een reden te vinden dat de programma’s die in het cluster zitten zich onderschei-den. Er is een overzicht gemaakt van hoe deze clustering zich verhoudt met de enkele anderedata waarop een clustering gebaseerd kan worden; de grootte van programma’s, cachegedrag eninstructies per cycle. Er is duidelijk geworden dat er een correlatie bestaat tussen de gebruikteclustering en elk van de bekeken andere methoden, maar dat er, op dit moment, geen aanwijsbarereden is dat de clustering nu is zoals deze is. Hiervoor is extra studie nodig.In Appendix B is een tabel te vinden met een overzicht van alle methoden en de bijbehorenderesultaten.

31

Page 32: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

6.1 Toekomstig werk

Er zijn verschillende verbeteringen aan het experiment. In de toekomst kan er gekeken wordennaar verschillende manieren om de trainingsset te clusteren. Er kan ook gekeken worden naar hoede plaatsing van EXEC MARKERS invloed heeft op het gedrag van de berekende modellen. Verderkan er een optimalisatie van de abstracte instructie set onderzocht worden. Zoals beschreven ente zien in de resultaten zijn er bepaalde klassen in gISA die zeer dominant zijn. Een verfijningvan de betreffende klassen zou misschien een duidelijker model kunnen geven.In dit onderzoek is een experiment gedaan waarbij er een model was gebaseerd op de te simulerenapplicatie. Dit experiment toonde hier aan dat het DCT proces inderdaad het dominante procesin M-JPEG is. Verder is het een slechte methode om een clustering te bedenken. In de toekomstis het de bedoeling dat deze methode (het berekenen van een signatuur aan de hand van externe(benchmark) programma’s) een algemene signatuur gaat opleveren die voor meerdere applicatieseen zinvol resultaat geeft. Hiervoor zijn dus meerdere applicaties nodig die in KPN-vorm zijnen in Sesame gesimuleerd kunnen worden. In de toekomst moet er dus gekeken worden naarmeerdere validaties van een model. Er moet gezocht worden naar een model dat voor meerdereverschillende applicaties een goed resultaat geeft.Een ander verder onderzoek zou zich kunnen richten op clustering van de trainingsset. Zoals insectie 5.1 beschreven is zijn er meerdere manieren mogelijk om een clustering te maken. In ditonderzoek is een clustering gemaakt op basis van een ouder model, en daarna is gezocht naareen reden dat de clustering zo was. Een andere methode is clusteren op basis van gemeten data.Zo kunnen er meer verschillende clusteringen getest en vergeleken worden.

32

Page 33: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

BIJLAGE A

Scripts

A.1 sig.py

Het script sig.py is geschreven om te gebruiken bij het berekenen van een model. De codebestaat uit 3 delen. Eerst wordt de informatie uit het meegegeven bestand ingelezen en gesplitop signaturen en cyclecounts. Een vereiste aan het aangeleverde bestand is dat de signaturenallemaal onder elkaar staan, zonder lege regels ertussen. Voor de cyclecounts geldt hetzelfde, designaturen en cyclecounts dienen gescheiden te worden door een lege regel.Na het inlezen van de twee lijsten worden de signaturen en cyclecounts in matrixvorm gegoten. Decyclecounts vector is een matrix met breedte 1, de signatuurmatrix heeft breedte 11. Als de datain de gewenste vorm is wordt de kleinste kwadraten schatter aangeroepen met als argumentende signatuurmatrix en cyclecountvector. De functie (lstsq()) is onderdeel van een pakketnumerieke functies, genaamd NumPy. Dit pakket ondersteunt ook het gebruik van matricesen er zijn ook verschillende matrixoperaties geımplementeerd. De output van het script is deberekende architectuursignatuur, deze wordt geschreven naar standard out.Bij dit script is de nodige foutafhandeling gewenst. Dat zou er, als het vaker gebruikt gaatworden, in de toekomst nog bijgemaakt kunnen worden. Verder is het wenselijk als het scriptiets minder gevoelig is voor fouten in de inputfile. Die mag nu maar een specifieke vorm hebbenen als dat niet zo is wordt de output van het script onvoorspelbaar.

A.2 get latencies.py

Het get latencies.py script is een simpel scriptje dat gebruikt wordt om een latency tabel teberekenen aan de hand van een op de commandline meegegeven architectuursignatuur.Eerst worden de applicatie-signaturen van M-JPEG gezet. Deze zijn hard ingecodeerd omdat zein de loop van dit onderzoek toch niet veranderden. In de toekomst zou het script aangepastkunnen worden zodanig dat de applicatiesignaturen bijvoorbeeld uit een externe file ingelezenworden. Vervolgens wordt de architectuursignatuur van de commandline ingelezen en in een lijstgezet. De lengte wordt gecontroleerd (de architectuur moet altijd lengte 11 hebben). Daarnawordt voor elk proces, per abstracte instructie de latency opgehoogd, totdat alle instructiesgeweest zijn. Aan het einde wordt de berekende latency tabel geprint naar standard out.

A.3 checksig.py

Het script checksig.py is een simpel scriptje geschreven om een architectuursignatuur te chec-ken. Het script krijgt via de commandline een filenaam en een architectuursignatuur mee. Erworden dan applicatiesignaturen uit de file ingelezen, de file moet wat opmaak betreft er ongeveerzo uit moet zien als een file die gelezen wordt door sig.py, zie sectie A.1; elke signatuur op z’neigen regel en aan het einde in ieder geval een lege regel. Er hoeven in deze file geen cyclecounts

33

Page 34: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

aanwezig te zijn.Het script gaat dan voor elke ingelezen applicatiesignatuur aan de hand van de meegegeven ar-chitectuursignatuur een cyclecount berekenen. Een lijst van alle cyclecounts wordt geprint naarstandard out.Dit script zou in de toekomst ook gebruikt kunnen worden om de latency tabellen te bereke-nen. Dat is nu niet gedaan omdat, ten eerste, toen dit script nodig was en gemaakt werd hetget latencies-script al bestond en omdat dit script verdere statistieken berekend aan de handvan de cyclecounts die ook in de ingelezen file staan.

A.4 nnls.cc

Een buitenbeentje tussen alle Python scripts is dit C++ script. Het gebruikte numeriek Pythonpakket bevat alleen een kleinste kwadraten schatter waarbij negatieve waarden wel voor kunnenkomen in het resultaat. Zoals beschreven is het soms wenselijk toch het resultaat te beperkentot waarden groter of gelijk aan nul. Een methode is de non-negative least squares. Er is gebruikgemaakt van een bestaande implementatie in C++. Er zijn aparte programmaatjes gemaaktvoor elke te berekenen signatuur. Dit is omdat de trainingsdata hard in de code staat.De main bestaat uit een definitie van de trainingsdata en andere variabelen die nodig zijn voorde functie. Verder is er een transpose functie geschreven die de 1-dimensionale array, waarin dedata per rij staat, omzet in een array waarin de data per kolom in staat.

34

Page 35: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

BIJLAGE B

Gemeten data

In tabel B.1 staan de resultaten van alle verschillende gebruikte methoden. Overzicht van demethoden:

1. Dit is het ijkmodel. Gemeten met een instructieniveau simulatie; het model waartegengevalideerd wordt.

2. Het model opgesteld aan de hand van de gehele trainingsset, met de gewone kleinste kwa-draten schatter.

3. Het model opgesteld aan de hand van de cluster met inliers, met de gewone kleinste kwa-draten schatter.

4. Het model opgesteld aan de hand van de cluster met outliers, met de gewone kleinstekwadraten schatter

5. Het model opgesteld aan de hand van de cluster met grote programma’s, met de gewonekleinste kwadraten schatter

6. Het model opgesteld aan de hand van de cluster met kleine programma’s, met de gewonekleinste kwadraten schatter

7. Het model opgesteld aan de hand van de benchmarkprogramma’s die het meest overeen-komen met het DCT proces, berekend met de gewone kleinste kwadraten schatter.

8. Het model opgesteld aan de hand van de gehele trainingsset, met de niet negatieve kleinstekwadraten schatter.

9. Het model opgesteld aan de hand van de cluster met inliers, met de niet negatieve kleinstekwadraten schatter.

In tabel B.2 staan de resultaten van alle simulaties die gedaan zijn om een trainingsset temaken. Te zien is voor elk programma per abstracte gISA instructie hoe vaak deze voorkomt enhet totaal aantal cycles. Eenzelfde tabel is gemaakt met de data die bij de M-JPEG applicatiehoren (tabel B.3)

35

Page 36: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Sign

atuu

rL

aten

cyta

bel

Cyc

leco

unt

1[0

.0,

-0.0

804,

1.54

44,

-0.2

504,

3.37

5e-1

4,-2

.072

8,2.

0014

,20

1.13

55,

0.0,

0.0,

0.0]

[57,

7007

,104

1690

,141

599,

2375

75,9

9727

]10

8818

9165

2[0

.0,

-8.1

590,

1.12

05,

1.55

57,

9.11

34e+

02,

4.84

90e-

01,

1.68

15,

1.40

81e+

02,

9.09

49e-

13,

0.0,

2.94

67e+

03]

[3,4

639,

7656

11,5

3386

,684

00,3

7260

]80

5161

992

3[0

.0,

-6.2

57,

1.21

46,

1.33

79,

7.63

90e+

02,

1.19

09,

1.57

90,

1.37

86e+

02,

0.0,

0.0,

1.54

78e+

04]

[10,

4987

,822

894,

5172

9,67

173,

3648

3]86

3816

478

4[7

.826

8e-0

8,-3

.846

5,6.

1758

e-01

,-1

.726

8,-1

.046

4e-1

0,-1

.363

6e+

01,

3.10

78,

5.37

28e+

03,

0.0,

0.0,

0.0]

[-1,

-435

,579

651,

5741

1,69

719,

3951

6]61

4741

910

5[-

1.21

54e-

09,

-3.2

233,

1.32

60,

1.24

46,

5.30

93e+

02,

1.79

46,

1.40

34,

1.34

03e+

02,

0.0,

0.0,

0.0]

[20,

5246

,899

081,

4971

6,65

833,

3563

7]94

1.82

8.03

66

[-3.

635e

-08,

-1.7

66,

6.65

3e-0

1,-1

.924

,-2

.005

e+03

,-2

.110

6e+

01,

3.06

98,

6.10

09e+

03,

0.0,

0.0,

-2.2

445e

+01

][-

3,-4

176,

1647

55,5

6503

,691

79,3

9224

]18

9.88

6.66

67

[-1.

4210

e-14

,-2

.037

4,2.

8268

e-02

,1.

0581

,8.

9815

e-03

,3.

3367

,1.

5360

,-9

.112

5e-0

2,0.

0,0.

0,2.

4851

e-04

][8

,492

7,11

0941

5,35

068,

4137

9,23

784]

1157

1587

668

[0,

0,0,

1.28

85,

6.06

60,

0,0,

0,0,

0.75

81,

19.2

649]

[2,2

01,1

2761

2,68

51,8

513,

4777

]15

1707

672

9[0

,3.

7896

,0,

0.96

87,

0,2.

7590

,0,

0,14

.781

6,0,

1.73

00]

[16,

1817

,457

076,

5700

,756

4,44

14]

4890

7797

5

Tab

elB

.1:

Ond

erzo

eksr

esul

tate

n

36

Page 37: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

UN

DE

FB

ME

MM

EM

BR

AN

CH

CO

PR

OC

IMU

LIS

IMP

LE

SPE

C1

SPE

C2

SPE

C3

UN

KN

OW

N#

cycl

esra

wca

udio

036

094

8842

421

3603

00

159

4732

530

00

00

2338

0831

raw

daud

io0

359

6520

249

1768

792

00

5303

716

302

00

018

1524

10ep

ic0

2062

2559

5955

4471

8046

1041

010

6570

7338

9589

480

830

00

6787

9692

0un

epic

012

4397

590

2182

537

5209

50

2226

5517

4492

4264

00

045

9163

35de

code

011

1103

2232

6516

186

7269

6765

028

5744

037

3567

854

101

00

010

1475

1131

enco

de0

1243

7705

3561

3327

580

8965

140

3226

241

4042

9244

599

00

011

0802

1283

toas

t0

4261

3323

0142

730

1543

3266

016

0637

9226

8069

243

950

00

7284

1419

2un

toas

t0

2825

2096

8069

8414

4665

850

2557

632

1053

3402

595

00

030

6038

024

djpe

g0

2083

150

5669

533

3860

023

512

4007

943

390

00

1351

6831

cjpe

g0

2416

4315

9823

4033

3302

40

8090

1488

3591

420

00

4914

1840

mip

map

024

2796

4747

8811

2969

4427

2532

761

2059

1538

4362

7618

619

3104

00

076

4201

862

mpe

g2de

c0

7368

6675

1285

4820

611

0263

461

5068

8024

7310

5670

8644

496

196

00

013

7835

9999

mpe

g2en

c0

3319

2272

6220

9881

7823

3236

1355

2538

2992

0051

8687

698

780

00

9414

4265

8m

peg2

enc

032

6585

6783

1796

386

2425

8940

813

5524

3237

0996

8879

4888

973

00

026

7626

0775

mpe

g2en

c0

3161

6221

5632

3836

517

5779

864

1355

2431

1313

8074

4953

650

700

00

2036

2148

11m

peg2

enc

031

5822

0555

8933

649

1748

2336

213

5524

3088

1985

7401

8928

672

00

020

2366

7040

pegw

itde

c0

1282

8226

3052

3825

7018

80

6627

4995

5074

00

096

8624

71pe

gwit

enc

023

1743

4760

8794

4731

600

088

4981

9328

920

00

1759

9911

3ra

sta

093

3855

221

9454

9633

3183

9320

460

1232

0401

2055

6298

417

989

00

229

3737

1423

4

Tab

elB

.2:

Mee

twaa

rden

van

Med

iabe

nch

UN

DE

FB

ME

MM

EM

BR

AN

CH

CO

PR

OC

IMU

LIS

IMP

LE

SPE

C1

SPE

C2

SPE

C3

UN

KN

OW

N#

cycl

esV

idIn

Init

03

132

01

60

00

057

Vid

InM

ain

067

1103

156

051

220

570

00

070

07D

CT

048

967

3370

9903

90

6363

258

0686

00

00

1041

690

Q0

142

1261

053

170

419

115

00

00

1415

99V

LE

030

720

464

6607

00

2241

80

00

023

7575

Vid

Out

021

710

130

3708

00

1303

10

00

099

727

Tab

elB

.3:

Mee

twaa

rden

van

M-J

PE

G

37

Page 38: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

38

Page 39: Het o -line trainen van signatuur- gebaseerde prestatie ... · Het doel van dit onderzoek ... Een nadeel van de latency tabellen is dat er geen informatie ... natuur van een applicatie

Bibliografie

[1] Bjorn Franke, ”Fast Cycle-Approximate Instruction Set Simulation”, ACM InternationalConference Proceeding Series; Vol. 296, 11th International Workshop on Software & Com-pilers for Embedded Systems (SCOPES), 2008

[2] V.S. Jaddoe, ”Architecture design space pruning using analytical performance estimation”,Grid Computing Master Thesis (2007)

[3] V.S. Jaddoe, A.D. Pimentel, ”Profile-based Analytical Performance Models for System-levelDesign Space Pruning”

[4] A.D. Pimentel, L.O. Hertzberger, P. Lieverse, P. van der Wolf, E.F. Deprettere, ”ExploringEmbedded-Systems Architecture with Artemis”, in IEEE Computer, pp. 57-63, Vol. 34 (No.11), Nov. 2001

[5] A.D. Pimentel, C. Erbas, ”A Systematic Approach to Exploring Embedded System Archi-tectures at Multiple Abstraction Levels”, in IEEE Transactions on Computers, pp. 99-112,Vol. 55 (No. 2), Feb. 2006

[6] Chunho Lee, Miodrag Potkonjak, William H. Mangione-Smith, ”MediaBench: A Tool forEvaluating and Synthesizing Multimedia and Communications Systems”, Microarchitecture,1997. Proceedings., Thirtieth Annual IEEE/ACM International Symposium on Microarchi-tecture, Dec. 1997

39