TY - GEN
T1 - Blind optimization for exploiting hardware features
AU - Knights, Dan
AU - Mytkowicz, Todd
AU - Sweeney, Peter F.
AU - Mozer, Michael C.
AU - Diwan, Amer
PY - 2009
Y1 - 2009
N2 - Software systems typically exploit only a small fraction of the realizable performance from the underlying microprocessors. While there has been much work on hardware-aware optimizations, two factors limit their benefit. First, microprocessors are so complex that it is unlikely that even an aggressively optimizing compiler will be able to satisfy all the constraints necessary to obtain the best performance. Thus, most optimizations use a simplified model of the hardware (e.g., they may be cache-aware but they may ignore other hardware structures, such as TLBs, etc.). Second, hardware manufacturers do not reveal all details of their microprocessors so even if the authors of optimizations wanted to simultaneously optimize for all components of the hardware, they may be unable to do so because they are working with limited knowledge. This paper presents and evaluates our blind optimization approach which provides a way to get around these issues. Blind optimization uses the insight that we can generate many variants of an application by altering semantic preserving parameters of an application; for example our variants can cover the space of code and data layout by shifting the positions of code and data in memory. Our optimization strategy attempts to find a variant that performs well with respect to an optimization objective. We show that even our first implementation of blind optimization speeds up a number of programs from the SPECint 2006 benchmark suite.
AB - Software systems typically exploit only a small fraction of the realizable performance from the underlying microprocessors. While there has been much work on hardware-aware optimizations, two factors limit their benefit. First, microprocessors are so complex that it is unlikely that even an aggressively optimizing compiler will be able to satisfy all the constraints necessary to obtain the best performance. Thus, most optimizations use a simplified model of the hardware (e.g., they may be cache-aware but they may ignore other hardware structures, such as TLBs, etc.). Second, hardware manufacturers do not reveal all details of their microprocessors so even if the authors of optimizations wanted to simultaneously optimize for all components of the hardware, they may be unable to do so because they are working with limited knowledge. This paper presents and evaluates our blind optimization approach which provides a way to get around these issues. Blind optimization uses the insight that we can generate many variants of an application by altering semantic preserving parameters of an application; for example our variants can cover the space of code and data layout by shifting the positions of code and data in memory. Our optimization strategy attempts to find a variant that performs well with respect to an optimization objective. We show that even our first implementation of blind optimization speeds up a number of programs from the SPECint 2006 benchmark suite.
UR - http://www.scopus.com/inward/record.url?scp=70350663151&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70350663151&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-00722-4_18
DO - 10.1007/978-3-642-00722-4_18
M3 - Conference contribution
AN - SCOPUS:70350663151
SN - 364200721X
SN - 9783642007217
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 251
EP - 265
BT - Compiler Construction - 18th International Conference, CC 2009 - Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, Proceedings
T2 - 18th International Conference on Compiler Construction, CC 2009. Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Y2 - 22 March 2009 through 29 March 2009
ER -