Abstract-Automation system intelligent navigera ett sökutrymme av möjliga implementationer av en beräkning för att hitta den eller de implementationer som bäst uppfyller en specifik optimeringskriterier, oftast prestanda. Detta dokument beskriver Nitro, ett programmeringsstyrt ramverk som underlättar inställning av kodvarianter, eller alternativa implementationer av samma beräkning. Nitro tillhandahåller ett biblioteksgränssnitt som tillåter programmerare att uttrycka kodvarianter tillsammans med metainformation som hjälper systemet att välja bland de olika varianterna vid körning. Maskininlärning används för att bygga en modell genom utbildning på denna meta-information, så att när en ny insats presenteras, Nitro kan konsultera modellen för att välja lämplig variant. I experiment med fem verkliga oregelbundna GPU-riktmärken från glesa numeriska metoder, grafberäkningar och sortering, uppnår Nitro-justerade varianter över 93% av prestandan hos de varianter som valts ut genom uttömmande sökning. Vidare beskriver vi optimeringar och heuristik i Nitro som avsevärt minskar träningstiden och andra overheads.
Muralidharan och andra har nyligen byggt ett programmeringsstyrt ramverk som heter Nitro för att välja lämpliga kodvarianter vid körning REF.
Nitro: A Framework for Adaptive Code Variant Tuning
{'venue': '2014 IEEE 28th International Parallel and Distributed Processing Symposium', 'journal': '2014 IEEE 28th International Parallel and Distributed Processing Symposium', 'mag_field_of_study': ['Computer Science']}