Real-world engineering problems commonly have multiple objectives that have to be tuned simultaneously. The trade-off Pareto front resulting from the tuning is used as a decision-making tool for selecting the best trade-off for any specific user scenario. Specifically, multi-objective optimization is a crucial matter in programming languages, compilers and hardware design space exploration (DSE) because real-world applications often rely on a trade-off between several objectives such as throughput, latency, memory usage, energy, area, etc.
While the growing demand for sophisticated DSE methods has triggered the development of a wide range of approaches and frameworks, none to date are featured enough to fully address the complexities of DSE in the PL/compilers domain. To address this problem, we introduce a new methodology and a framework dubbed HyperMapper. HyperMapper is a machine learning-based tool designed for the computer systems community and can handle design spaces consisting of multiple objectives and numerical/discrete variables. Emphasis is on exploiting user prior knowledge via modeling of the design space parameters distributions. Given the years of hand-tuning experience in optimizing hardware, designers bear a high level of confidence. HyperMapper gives means to inject knowledge in the search algorithm. The framework uses a Bayesian Optimization algorithm, i.e., construct and utilize a surrogate model of the latent function to guide the search process. A key advantage of having a model is the reduction of the optimization time budget. HyperMapper is a plug-and-play framework that makes it easy for compiler/hardware designers to explore their search spaces.
To aid the comparison of HyperMapper with other DSE tools, we provide a taxonomy of existing tools.
Topics to be covered • Introduction to the DSE problem • Introduction of the HyperMapper framework • Demo on HyperMapper on a simple synthetic DSE workload • Hands-on HyperMapper: the audience will run HyperMapper on their laptops • Advanced features • Demo on the real-world Spatial programming language use-case (Spatial was introduced in PLDI 2018)