Vi presenterar en prestandamodelldriven ram för automatisk inställning (automatisering) av sparse matris-vektorn multiplicera (SpMV) på system som accelereras av grafik bearbetningsenheter (GPU). Vår studie består av två delar. För det första beskriver vi flera noggrant handjusterade SpMV-implementationer för GPU:er, som identifierar viktiga GPU-specifika prestandabegränsningar, förbättringar och inställningsmöjligheter. Dessa implementationer, som inkluderar varianter på klassiskt blockerad komprimerad sparse rad (BCSR) och blockerad ELLPACK (BELLPACK) lagringsformat, matcha eller överskrida state-of-the-art implementations. Till exempel, vår bästa BELLPACK genomförande uppnår upp till 29,0 Gflop/s i enkelprecision och 15,7 Gflop/s i dubbelprecision på NVIDIA T10P multiprocessor (C1060), förbättra tidigare toppmoderna oblockerade implementeringar (Bell och Garland, 2009 ) med upp till 1,8× och 1,5× för enkel-och dubbelprecision respektive. För att uppnå denna prestandanivå krävs dock indatamatrisberoende parameterinställning. I den andra delen av denna studie utvecklar vi därför en prestandamodell som kan vägleda stämningen. Liksom tidigare autotuering modeller för CPUs (t.ex., Im, Yelick, och Vuduc, 2004), denna modell kräver offline mätningar och körtid uppskattning, men mer direkt modellerar strukturen av multitrådade vektorprocessorer som GPUs. Vi visar att vår modell kan identifiera de implementationer som uppnås inom 15 procent av dem som hittas genom uttömmande sökning.
Choi m.fl. REF utformade ett blockerat format för ELLPACK (BELLPACK) och föreslog en prestandamodell för att förutsäga matrisberoende inställningsparametrar.
Model-driven autotuning of sparse matrix-vector multiply on GPUs
{'venue': "PPoPP '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}