GPU har blivit vanligare och mer allmänt syfte, men GPU-programmering är fortfarande utmanande och tidskrävande för de flesta programmerare. Dessutom är det inte alltid klart vilka koder som kommer att gynnas av att bli portade till GPU. Därför är det mycket önskvärt att ha ett verktyg för att uppskatta GPU-prestanda för en kodbit innan man skriver en GPU-implementation. I detta syfte föreslår vi Cross-Architecture Performance Prediction (XAPP), en maskininlärningsbaserad teknik som endast använder enkelgängad CPU-implementation för att förutsäga GPU-prestanda. Vårt papper bygger på följande två insikter: i) Körtid på GPU är en funktion av programegenskaper och hårdvaruegenskaper. ii) Genom att undersöka ett stort utbud av tidigare implementerade GPU-koder tillsammans med deras CPU motsvarigheter, kan vi använda etablerade maskininlärning tekniker för att lära sig denna korrelation mellan programegenskaper, hårdvaruegenskaper och GPU exekveringstid. Vi använder en adaptiv två-nivå maskininlärning lösning. Våra resultat visar att vårt verktyg är robust och korrekt: vi uppnår 26,9% genomsnittsfel på en uppsättning av 24 verkliga kärnor. Vi diskuterar även praktiska användningsscenarier för XAPP.
Referensreferensreferensen innehåller ett förslag till beräkning av prestanda mellan arkitekturer.
Cross-architecture performance prediction (XAPP) using CPU code to predict GPU performance
{'venue': 'MICRO-48', 'journal': None, 'mag_field_of_study': ['Computer Science']}