An Exploration into the Effectiveness of Prefetching on Program Performance with the Help of an Autotuning Model
MetadataShow full metadata
This thesis presents the effects of hardware prefetching on the performance of a collection of programs and how learning algorithms can be used to predict the optimal hardware prefetching algorithms to obtain improved performance. Modern processors are equipped with several hardware prefetchers, each of which implements a different prefetching algorithm. My goal was to select the best combination of these prefetchers, as there is no single combination that results in best performance across various programs. Effective program characterization is necessary when learning models are used to make predictions based on program behavior. This thesis uses hardware performance events in conjunction with a pruning algorithm to create a concise and expressive feature set. The feature set is used in three different learning models. These steps are tied together in the form of an autotuning framework that can, on average, achieve up to 96% of the possible speedup that can be attained by varying the combination of prefetchers in effect. The framework is built using open source tools and frameworks, thereby making the framework easy to use, extend and port to other architectures.