Loop transformationer såsom tiling, parallellisering eller vektorisering är viktiga verktyg i sökandet efter högpresterande program exekvering. Exakt databeroende analys krävs för att avgöra om kompilatorn kan tillämpa en transformation eller inte. I synnerhet, aktuella statiska analyser misslyckas normalt med att ge tillräckligt exakt beroendeinformation när koden innehåller indirekta minnesåtkomster eller polynom subscript funktioner index matriser. är leder till att överväga super mödosamma maj-beroenden mellan instruktioner som förhindrar många loop transformationer som ska tillämpas. I detta arbete presenterar vi en ny hybrid (statisk/dynamisk) ram som gör det möjligt att övervinna flera begränsningar av rent statiska beroendeanalyser: För en given loopomvandling genererar vi statiskt ett test som ska utvärderas i körtid. Testet gör det möjligt att avgöra om omvandlingen är giltig och i så fall utlöser verkställandet av den omvandlade koden och återgår till den ursprungliga koden på annat sätt. Sådana tester, ursprungligen konstruerade som en loopbaserad kod med O (n 2 ) iterationer (n är antalet iterationer av den ursprungliga loop-nest), reduceras till en loop-fri test av O (1) komplexitet tack vare ett nytt kvanti er elimineringsschema som vi inför i detta dokument. E precision och låga omkostnader av vår metod demonstreras över 25 kärnor. •Computing metodik →Symbolic och algebraic algoritmer; •Så ware och dess konstruktion →Compilers;
Mycket nyligen, Sampaio et al. I REF föreslogs att man skulle använda en komplex hybridram (statisk och dynamisk) för att övervinna begränsningarna med rent statiska beroendeanalyser.
Simplification and runtime resolution of data dependence constraints for loop transformations
{'venue': "ICS '17", 'journal': None, 'mag_field_of_study': ['Computer Science']}