Ett stort antal optimeringar av kompilatorer finns idag tillgängliga för användare. Dessa optimeringar samverkar med varandra och med inmatningskoden på flera och komplexa sätt. Den sekvens av tillämpning av optimeringspass kan ha en betydande inverkan på den uppnådda prestandan. Effekten av optimeringarna är både plattforms- och applikationsberoende. En uttömmande undersökning av alla livskraftiga sekvenser av kompilatoroptimeringar för ett givet kodfragment är inte möjlig. Eftersom denna prospektering är en komplex och tidskrävande uppgift, har flera forskare fokuserat på strategier Design Space Exploration (DSE) både för att välja optimeringssekvenser för att förbättra prestandan för varje funktion i applikationen och för att minska prospekteringstiden. I den här artikeln presenterar vi ett DSE-system baserat på ett klustersystem för grupperingsfunktioner med likheter och utforskande av ett reducerat sökutrymme till följd av den kombination av optimeringar som tidigare föreslagits för funktionerna i varje grupp. Identifieringen av likheter mellan funktioner använder en data mining metod som tillämpas på en symbolisk kod representation. Datautvinningsprocessen kombinerar tre algoritmer för att generera kluster: Normalized Compression Distance, Neighbor Joining, och en ny tvetydig-baserad klusteralgoritm. Våra experiment för att utvärdera effektiviteten av den föreslagna metoden behandlar prospektering av optimeringssekvenser i samband med ReflectC-kompilatorn, med beaktande av 49 kompilering passerar samtidigt som en Xilinx MicroBlaze-processor, och syftar till prestandaförbättringar för 51 funktioner och fyra applikationer. Experimentella resultat visar att användningen av vår klusterbaserade DSE metod uppnår en betydande minskning av den totala prospekteringstiden för sökområdet (20× över en Genetisk Algoritm strategi) samtidigt som betydande prestandauppfarter (41% över baslinjen) erhölls med hjälp av de optimerade koderna. Ytterligare experiment utfördes med tanke på LLVM kompilatorn, med tanke på 124 kompileringspass, och inriktning en LEON3-processor. Resultaten visar att vårt tillvägagångssätt uppnått geometriska genomsnittliga uppfarter på 1,49×, 1,32×, och 1,24× för de bästa 10, 20 och 30 funktioner, respektive, och en global förbättring på 7% jämfört med den prestanda som erhållits vid sammanställning med -O2.
Matrins m.fl. REF tog itu med problemet med fasbeställning genom en DSE-strategi som använder en klusterbaserad urvalsmetod för att gruppera funktioner med likheter och utforska ett reducerat sökutrymme till följd av den kombination av optimeringar som tidigare föreslagits för funktionerna i varje grupp.
Clustering-Based Selection for the Exploration of Compiler Optimization Sequences
{'venue': 'TACO', 'journal': None, 'mag_field_of_study': ['Computer Science']}