next up previous
Next: Introduction

Automatic assembly of highly tuned code fragments

Rich Vuduc
U.C. Berkeley
Statistics 242 Final Project
richie@cs.berkeley.edu

Abstract:

We describe an automatic procedure for building a fast library routine from a set of code fragments. These code fragments solve the same problem (i.e., have identical inputs and outputs), but we assume that each fragment has been performance-tuned for different kinds of inputs. Suppose we are given a sampling of possible inputs, and the execution times of each algorithm on each sample input. Then, our procedure builds a single library routine with static rules for quickly selecting a code fragment. The rules are chosen to minimize overall execution time on all inputs. We use a supervised learning approach to classify regions of the input space by algorithm. Our implementation works essentially by solving a non-linear optimization problem.



 

Richard Vuduc
1998-12-15