Heterogena system, system med flera processorer anpassade för specialiserade uppgifter, är utmanande programmeringsmiljöer. Även om det kan vara möjligt för domänexperter att optimera en högpresterande applikation för ett mycket specifikt och väldokumenterat system, det kanske inte fungerar lika bra eller ens fungerar på ett annat system. Utvecklare som har mindre erfarenhet av antingen programdomänen eller systemarkitekturen kan ägna en betydande ansträngning åt att skriva ett program som bara fungerar korrekt. Vi anser att ett omfattande analys- och modellramverk är nödvändigt för att underlätta applikationsutveckling och automatisera programoptimering på heterogena plattformar. Detta dokument rapporterar om en empirisk utvärdering av 25 CUDA-tillämpningar på fyra GPU och tre Processorer, utnyttja Ocelot dynamiska kompilatorinfrastruktur som kan köra och instrument samma CUDA-applikationer på vardera målet. Med hjälp av en kombination av instrumentering och statistisk analys registrerar vi 37 olika mätvärden för varje applikation och använder dem för att härleda samband mellan programbeteende och prestanda på heterogena processorer. Dessa relationer matas sedan in i en modellering ram som försöker förutsäga prestandan för liknande klasser av applikationer på olika processorer. Mest signifikant är att denna studie identifierar flera icke-intuitiva samband mellan programkarakteristika och visar att det är möjligt att exakt modellera CUDA-kärnans prestanda med hjälp av endast mätvärden som är tillgängliga innan en kärna körs.
På samma sätt använder REF olika egenskaper som liknar dem vi använder för att identifiera samband mellan applikationens beteende och prestanda på olika heterogena system.
Modeling GPU-CPU workloads and systems
{'venue': 'GPGPU-3', 'journal': None, 'mag_field_of_study': ['Computer Science']}