1 / 29

Experiences with Enumeration of Integer Projections of Parametric Polytopes

This paper explores the enumeration of integer projections of parametric polytopes in compiler analyses. It discusses the usefulness of this technique in various compiler analyses and provides a high-level algorithm overview. The paper also presents experiments and concludes with the benefits of this approach.

ola
Download Presentation

Experiences with Enumeration of Integer Projections of Parametric Polytopes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Experiences with Enumeration of Integer Projections of Parametric Polytopes Sven Verdoolaege, Kristof Beyls, Maurice Bruynooghe, Francky CatthoorCompiler Construction - 2005

  2. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  3. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  4. Introduction • Counting problems in compiler: • How many executed calculations? • How many data addresses accessed? • How many cache misses? • How many dynamically allocated bytes? • How many live array elements at a symbolic iteration (i,j)? • How much communication between parallel processes? • … • Often, answering these questions lead to counting the number integer solutions to a system of linear inequalities: • when the code consists of loops with linear loop bounds. • when the array index expressions have a linear form.

  5. Example 1: Counting solutions to systems of linear inequalities void s(int N, int M) { int i,j; for(i=max(0,N-M); i<=N-M+3; i++) for(j=0; j<=N-2*i; j++) S1; } How many times is statement S1 executed? Equals the number of elements in the set: linear inequalities defining a bounded domain polytope parameters  parametric

  6. Geometric representation: parametric integer polytope

  7. Solution: counting the number of integer points in a parametric polytope • Algorithm see CASES2004:“Analytical Computation of Ehrhart Polynomials: Enabling more Compiler Analyses and Optimizations”. • Solution:

  8. Contribution: Extension to include existential variables • Goal: count the solution in parameterized sets of the form: • CASES2004: • CC2005:

  9. l = 6i+9j-7 1 <= j <= P and1 <= i <= 8 Example: How many array elements accessed in following loop? for j:= 1 to P do for i:= 1 to 8 do a(6i+9j-7) += 5

  10. Geometric representation: Integer projection of parametric polytope. for j:= 1 to P do for i:= 1 to 8 do a(6i+9j-7) += 5 Answer: Not a polytope! P = 3

  11. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  12. Examples of compiler analyses benefiting from our work • Data placement while taking into account real-time constraints • Anantharaman et al., RTSS 1998 • Memory size estimation of loop nests after translation to VLSI designs • Balasa et al., IEEE T.VLSI 1995 • Zhao et al., IEEE T.VLSI 2000 • Compilation to parallel FPGA / VLSI • Bednara et al., Samos 2002 • Hannig et al., PaCT 2001 • Calculating Cache Behavior • Beyls et al., JSA 2005 • Chatterjee et al., PLDI 2001 • Computing communication in distributed memory computers (HPF) • Boulet et al., Euro-Par 1998 • Heine et al., Euro-Par 2000 • Su et al., ICS 1995 • Low-Power Compilation • D’Alberto et al., COLP 2001

  13. Usefulness • In many of the above papers, the authors spent most of the paper discussing estimation methods to get approximate answers to the question: How many elements in S? • In this paper, we answer this question exactly.

  14. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  15. Overall idea: PIP/heuristics + Barvinok 3 Heuristics(novel) PIP(Feautrier’88) Novel method:Worst-case polynomialexec. time, for fixednumber of variables Boulet(1998):Worst-case exponentialexec. time, even for fixednumber of variables Ehrhart(Clauss’96) Barvinok(Verdoolaege’04) Solution: closed form Ehrhart quasi-polynomial

  16. PIP(Feautrier’88) Parametric Integer Programming (PIP) • PIP allows to compute the lexicographical minimal element of a parametric polytope • Compute the lexicographical minimum of all points in S that are projected onto the same point in S’. (Worst-case exponential time)

  17. 3 Heuristics(novel) 3 Polynomial-time Heuristics • Unique existential variables • “thickness” always smaller than 1: treat existential variable as regular variable • Redundant existential variables • “thickness” always larger than 1: project polytopes, and count project. Legal, since there are no “holes”. (=Omega test). • Independent splits • If none of the above applies, try to split polytope in multiple polytopes, for which one of the above rules applies

  18. 3 Heuristics(novel) 3 Heuristics: example “thickness” ≥1 “thickness” ≤1

  19. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  20. Experiments • Reuse Distance Calculation [Beyls05] • Communication volume computation in HPF [Boulet98] • Memory Size Estimation [Balasa95] • Parametric Cache Miss Calculation [Chatterjee01]

  21. Reuse Distance Calculation • Computes the number of data locations accessed between two consecutive reuses of the same data. • Parameters: iteration point where reuse occurs + program parameters.

  22. 3 Heuristics(novel) PIP(Feautrier’88) Barvinok(Verdoolaege’04) Test 1: Matrix multiply, matrix size multiple of cache line size. • PIP vs. Heuristics

  23. Test 2: Matrix multiply, matrix size 19 and 41, cache line size 4 • Heuristics: 2 sets couldn’t be computed in one hour of time.(vertex calculation during change of basis) • PIP: 4 sets couldn’t be computed in an hour of time. • Conclusion: There are sets for which neither method can compute the solution in reasonable time.

  24. PIP(Feautrier’88) Ehrhart(Clauss’96) Barvinok(Verdoolaege’04) Test 3: Ehrhart vs. Barvinok

  25. Other applications.a) communication in HPF [Boulet98] • Computation of communication volume (HPF, Boulet98):

  26. Other applicationsb) Memory size estimation [Balasa95] Memory accessed by 4 different references in a motion estimation loop kernel, with symbolic loop bounds

  27. Other applicationsc) Cache miss analysis [Chatterjee01] • Computes the number of cache misses in a two-way set-associative cache, for matrix-vector multiplication with symbolic loop bounds.

  28. Overview • Explaining the title. • Useful in which Compiler Analyses? • High-level Algorithm Overview • Experiments • Conclusion

  29. Conclusions • Many compiler analyses and optimization require the enumeration of integer projections of parametric polytopes. • Can be done by reduction to enumeration of parametric polytopes. • No clear performance difference between PIP and heuristics. • Can solve many problems that were previously considered very difficult or unsolvable. • Software available athttp://freshmeat.net/projects/barvinok

More Related