Abstract-Utvecklare av GPU-kärnor, såsom FFT, linjära lösare, etc, justera sin kod i stor utsträckning för att uppnå optimal prestanda, vilket gör en effektiv användning av olika resurser tillgängliga på GPU. Komplexa applikationer består av flera sådana kärnkomponenter. Den programvarutekniska gemenskapen har genomfört omfattande forskning om komponentbaserad design för att bygga generiska och flexibla komponenter, så att en komponent kan återanvändas över olika applikationer, snarare än optimera sin prestanda. Eftersom en GPU i första hand används för att förbättra prestandan, blir applikationens prestanda en viktig designfråga. Bidraget från vårt arbete ligger i att utöka komponentbaserad designforskning i en ny riktning, att hantera prestandaeffekten av att refaktorisera en applikation som består av sammansättningen av högstämda kärnor. Sådan refaktoring kan göra sammansättningen mer effektiv med avseende på GPU resursanvändning, särskilt när den kombineras med lämplig schemaläggning. Här föreslår vi en metod där utvecklare av högstämda kärnor kan göra det möjligt för applikationsdesigners att optimera kompositionens prestanda. Kernelutvecklare karakteriserar prestandan hos en kärna genom dess "prestandasignatur". Applikationsdesignern kombinerar dessa kärnor så att prestandan hos den refaktorde kärnan är bättre än summan av de enskilda kärnornas prestanda. Detta baseras delvis på observationen att olika kärnor kan göra obalanserad användning av olika GPU-resurser som olika typer av minne. Kärnor kan också ha potential att dela data. Att refaktorisera kärnorna, kombinera dem och schemalägga dem på lämpligt sätt kan förbättra prestandan. Vi studerar olika typer av potentiella designoptimeringar och utvärderar deras effektivitet på olika typer av kärnor. Detta kan även innebära att välja icke-optimala parametrar för en enskild kärna. Vi analyserar hur prestandasignaturen för sammansättningen förändras från de enskilda kärnornas genom våra tekniker. Vi visar att våra tekniker leder till över 50% förbättring med vissa kärnor. Dessutom kan prestandan för en grundläggande molekylär dynamik ansökan förbättras med cirka 25,7%, på en Fermi GPU, jämfört med en icke-faktoriserad implementation.
Ett systems prestanda kan förbättras genom sammansättningen av kärnorna REF.
Reuse and Refactoring of GPU Kernels to Design Complex Applications
{'venue': '2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications', 'journal': '2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications', 'mag_field_of_study': ['Computer Science']}