Data Dependence Profiling

and Speculative Optimization

Goal

Design an efficient data-dependence profiler for commodity processors that achieves low overhead on a wide range of applications with demonstrable utility for optimization and parallelization.

What's new

We build our dependence profiling framework around the idea of software signatures, which are essentially Bloom filters that enable efficient set operations. By casting dependence profiling as a set of fast operations on sets of addresses we can achieve high speed profiling. One of our major efforts is understanding the best ways to use signatures to achieve high performance.

A potential downside is that signatures suffer from false positives and that reduces the accuracy of the profile information. Another major effort is measuring and mitigating inaccuracy caused by signatures.

Use in optimization

We also are working to demonstrate the importance and usefulness of dependence profilers for program optimization. Prior research has shown how to use dependence profilers for various speculative optimizations, and we build off of that work to show the usefulness of our profiler framework.

This work is supported by two awards from the National Science Foundation (CCF-0952832,CNS-1320356) and a gift from the Qualcomm Foundation.