Presentation is loading. Please wait.

Presentation is loading. Please wait.

Experiences with Enumeration of Integer Projections of Parametric Polytopes Sven Verdoolaege, Kristof Beyls, Maurice Bruynooghe, Francky Catthoor Compiler.

Similar presentations


Presentation on theme: "Experiences with Enumeration of Integer Projections of Parametric Polytopes Sven Verdoolaege, Kristof Beyls, Maurice Bruynooghe, Francky Catthoor Compiler."— Presentation transcript:

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

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

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

4 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 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 6 Geometric representation: parametric integer polytope

7 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 8 Contribution: Extension to include existential variables  Goal: count the solution in parameterized sets of the form:  CASES2004:  CC2005:

9 9 l = 6i+9j-7 1 <= j <= P and 1 <= 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 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 P = 3 Answer: Not a polytope!

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

12 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 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 14 Overview  Explaining the title.  Useful in which Compiler Analyses?  High-level Algorithm Overview  Experiments  Conclusion

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

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

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

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

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

21 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 22 Test 1: Matrix multiply, matrix size multiple of cache line size.  PIP vs. Heuristics PIP (Feautrier’88) 3 Heuristics (novel) Barvinok (Verdoolaege’04)

23 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 24 Test 3: Ehrhart vs. Barvinok PIP (Feautrier’88) Ehrhart (Clauss’96) Barvinok (Verdoolaege’04)

25 25 Other applications. a) communication in HPF [Boulet98]  Computation of communication volume (HPF, Boulet98): EhrhartBarvinok 8x8 processors 713s/0.04s0.01s 64x64 processors 6855s/1.43s0.01s

26 26 Other applications b) Memory size estimation [Balasa95] EhrhartBarvinok 4 memory references 1.38s/0.01s/ 1.41s/1.41s 0.06s/0.01s/ 0.07s/0.04s Memory accessed by 4 different references in a motion estimation loop kernel, with symbolic loop bounds

27 27 Other applications c) 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. PIP+ Ehrhart PIP+ Barvinok Heuristics+ Barvinok symbolic cache miss counting > 15 h449.39s434.47s

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

29 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 at http://freshmeat.net/projects/barvinok


Download ppt "Experiences with Enumeration of Integer Projections of Parametric Polytopes Sven Verdoolaege, Kristof Beyls, Maurice Bruynooghe, Francky Catthoor Compiler."

Similar presentations


Ads by Google