Design Space Exploration Wouter Caarls Max Planck Institute for Biophysical Chemistry EVA project meeting, 29-6-2009
What is DSE? Explore the space of possible processing architectures in order to determine an optimal design for solving a certain problem. What is optimal? May also include different algorithms for solving the problem Is not necessarily automated
Why DSE? Tailor architecture to program, instead of other way around Consider many architectures, instead of just what’s familiar Application may change Product requirements Implementation/algorithms
How does it work? Take an initial set of architectures Predict the performance of the application on those architectures Evaluate the performance according to some evaluation criterion. If satisfied, go to 5 Find new architectures based on the best scoring ones and go to 2 Choose an architecture Execute the application on the chosen architecture
1. Generating initial architectures Random Increasing complexity Decreasing complexity
2. Performance prediction Must work for many possible architectures Different processor architectures Processor parameters (Heterogeneous) multiprocessing Interconnect Implementation strategies OS parameters (mapping & scheduling) For each function Benchmarking Annotation For the application Discrete event simulation
3. Evaluation Criteria Optimization strategy Speed Power consumption Cost Optimization strategy Some minimal requirements are often known beforehand But tradeoff must always be made manually Requires optimization of a tradeoff (Pareto) curve
Optimization strategy Constrained single objective performance cost minimum performance
Optimization strategy Multiobjective tradeoff iteration performance cost
Optimization strategy Strength Pareto performance cost
4. Exploration Hill climbing Simulated annealing Evolutionary algorithm
5. Selection Ultimate tradeoff made by human
6. Execution Different processor parameters Multiple processors High-level programming language Multiple processors Parallel language Multiple processing paradigms Multiple implementations Very high level language