Abstrakt. Optimized Sparse Kernel Interface (OSKI) är en samling lågnivå primitiver som tillhandahåller automatiskt avstämda beräkningskärnor på sparse matriser, för användning av lösare bibliotek och applikationer. Dessa kärnor inkluderar sparse matris-vektorn multiplicera och sparse triangulära lösa, bland annat. Det primära syftet med detta gränssnitt är att dölja den komplexa beslutsprocess som krävs för att justera prestandan för en kärna implementation för en viss användares sparsamma matris och maskin, samtidigt som man också exponerar stegen och potentiellt icke-triviala kostnader för inställning vid körtid. Denna uppsats ger en översikt över OSKI, som bygger på vår forskning på automatiskt avstämda glesa kärnor för moderna cache-baserade superskalarmaskiner. Vi beskriver Optimized Sparse Kernel Interface (OSKI), en samling lågnivå primitiver som ger automatiskt avstämda beräkningskärnor på sparse matriser, för användning av lösare bibliotek och applikationer. Kärnorna inkluderar sparse matris-vektorn multiplicera (SpMV) och sparse triangulär lösning (SpTS), bland annat; "tuning" avser processen för att välja datastruktur och kod transformationer som leder till det snabbaste genomförandet av en kärna, givet en maskin och matris. Medan konventionella implementationer av SpMV har historiskt kört på 10% av maskinen topp eller mindre, noggrann inställning kan uppnå upp till 31% av topp och 4× speedups [1, Chap. - Vad är det för fel på dig? Utmaningen är att vi ofta måste skjuta upp inställning till körtid, eftersom matrisen kan vara okänd fram till dess. Behovet av körtidsinställning skiljer sig från fallet med täta kärnor där endast installations- eller kompileringstidsinställning har visat sig vara tillräcklig i praktiken [2, 3]. OSKI återspeglar behovet av och kostnaden för körtid tuning, som i stor utsträckning dokumenteras i vårt senaste arbete om automatisk inställning av sparse kärnor med hjälp av sparsity ramverket [4, 5, 1, 6, 7, 8, 9, 10, 11]. De 6 målen i vårt gränssnitt och de viktigaste resultaten motiverande var och en är följande: (i) Ge grundläggande sparse kärna "byggstenar": Vi definierar ett gränssnitt för grundläggande glesa operationer som SpMV och SpTS, i anda av de allmänt använda Basic Linear Algebra Subrutines (BLAS) [12] och senaste Sparse BLAS Standard [13, 12]. Vi väljer de prestandakritiska kärnor som behövs av sparse lösningsbibliotek och applikationer (särskilt
ese algoritmer ingår, t.ex., i OSKI REF, som är en samling av lågnivå primitiva av stämda glesa kärnor för moderna cache-baserade superskalar maskiner.
OSKI: A library of automatically tuned sparse matrix kernels
{'venue': 'Institute of Physics Publishing', 'journal': None, 'mag_field_of_study': ['Computer Science']}