Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

1. EXJOBBARENS NAMN OCH E-POST-ADRESS: Simon Lindholm, slindhol@kth.

se
2. PRELIMINÄR TITEL: Effektivitetsvinsten av explicitare autovektorisering
3. BAKGRUND/FÖRUTSÄTTNINGAR: Jag har tänkt implementera ett verktyg (en kompilator)
för automatisk-men-interaktiv vektorisering av kod, för att mäta hur stora effektivitetsvinster som
kan uppnås gentemot helt automatiska metoder i stil med de som används av moderna kompilatorer
(gcc, clang). Arbetet sker egenhändigt, inte i relation till något företag.
4. VETENSKAPLIG FRÅGA: Ett examensarbete ska utreda en specifik vetenskaplig/teknisk
fråga. Ange preliminärt:
• FRÅGA: Kan interaktion med programmeraren förbättra automatisk vektorisering?
• FORSKNINGSOMRÅDE: datalogi, kompilatorer
• KOPPLING TILL FORSKNING/UTVECKLING: Det finns mycket existerande
forskning/litteratur om kompilatorer, modeller för dataparallell kod, och om automatisk
vektorisering av kod. Det här exjobbet bygger vidare på den forskningen, genom att lägga
till aspekterna av att kolla på begränsningar av helt automatiska metoder, och se i vilken
mån interaktivitet med programmeraren hjälper effektivitet. Frågan kan vara av intresse för
tillverkare av kompilatorer och liknande utvecklarverktyg, och användare därav som är
intresserade av effektiv kod.
• UNDERSÖKNINGSMETOD: Ett verktyg för interaktiv autovektorisering ska
implementeras. Genom detta kommer det observeras vilken sorts kod som går att vektorisera
automatiskt, interaktivt, vilken sorts dialog som går att föra med användaren, och slutligen
hur stora effektivitetsvinster som kan uppnås gentemot vanliga kompilatorer.
• HYPOTES: En förhoppning är att kategorier av programsnuttar hittas för vilka interaktiv
autovektorisering hjälper. Andra möjligheter är att alla optimeringar observeras vara
(teoretiskt, om inte praktiskt) möjliga även utan interaktivitet, eller att det inte går att göra
speciellt mycket bättre än existerande verktyg, t.ex. den sortens hjälputskrifter som
kompilatorer redan kan ge en.
• UTVÄRDERING: För att avgöra om målet med examensarbetet uppfyllts bör man helt
enkelt läsa rapporten och se hur mycket information om nyttan med interaktiv
autovektorisering som finns.
5. EXJOBBARENS BAKGRUND: Jag har en rimlig mängd erfarenhet av kompilatorer, i form av
att ha följt utvecklingen av SpiderMonkey (Firefox:s JavaScript-motor), av Rust, och av att ha gått
kursen Kompilatorkonstruktion (DD2488) på KTH. Jag har experimenterat en hel del med
SIMD/vektoriserad kod på fritiden.
6. För exjobb vid företag: (ej relevant)
7. AVGRÄNSNING/RESURSER: Ingen tidigare kod finns att bygga vidare på, däremot finns
bibliotek för parsing av programspråk på internet. Jag känner inte till några speciella resurser för
hjälp med arbetet annat än nätet. Arbetet består oundvikligen till stor del av praktisk implementation
från grunden.
8. BEHÖRIGHET OCH STUDIEPLANERING:
• Behörighet: Jag har samlat ihop totalt 247 hp, varav 106.5 på avancerad nivå, se bifogat
studieintyg. En kurs i vetenskapsteori DD2210 är halvvägs avklarad (tenta och uppsats
återstår). Huruvida jag uppfyller återstående krav på t.ex. programspecifika kurser som
måste läsas är lite oklart, iom. att jag frångått den officiella studieplanen. Jag har pratat en
del med datas studievägledare, men ännu inte hunnit få något officiellt okej.
• Studieplanering: Andra återstående kurser:
Vetenskapsteori (DD2211): 6.0 hp, kommer klaras av om en vecka med lite tur
Seminariekurs i teoretisk datalogi (DD2442): 7.5 hp, i princip klar, har bara ett restmoment
kvar som kräver ett kontinuerligt sjok av tid
Komplexitetsteori (DD2445): 6.5 hp, i princip klar, har en presentation kvar att göra under
våren, kan alternativt acceptera ett B i betyg
Hållbar utveckling för datateknik (AG1814): 3.5 hp restmoment, att göra efter allt annat
Σ = 247 + 30 + 6 + 7.5 + 7.5 + 3.5 = 301.5 hp

You might also like