How exactly Loop Dependence Analysis helps in vectorization ? Are there any standard rules of safety criterias for parallizing such loops ?
-
$\begingroup$ Isn't all of the information available on the two cited wiki pages? $\endgroup$– Dave ClarkeSep 7, 2012 at 3:22
-
$\begingroup$ @DaveClarke the pages do state that how do you perform the analysis, but doesn't mention any practical method for utilizing the result of the analysis $\endgroup$– krammerSep 7, 2012 at 6:16
-
$\begingroup$ In that case, it would help your question if you fleshed it out with what you know, and precisely what you want to know (e.g. good vs bad examples). $\endgroup$– Raphael ♦Sep 7, 2012 at 7:28
-
$\begingroup$ thanks @Raphael for the suggestion. I was able to look for clues myself on which I can build upon. $\endgroup$– krammerSep 8, 2012 at 9:19
1 Answer
I found a few resources which helped me to understand the more complex algorithms for use of loop dependence analysis.
The basic way in which the result from Loop Dependence Analysis is utilized is through various tests such as
Dependence Test of various types such as GCD Test, Conservative Test etc. help in determining if the dependency exists and they can further be utilized to test if the Loop Transformation is safe or not.
Following are a few references which helped:
1) http://www.cs.cmu.edu/afs/cs/academic/class/15745-s09/www/lectures/lect6-deps.pdf
2) http://www.cs.utsa.edu/~qingyi/cs6363/slides/Ch02Dependence.pdf
3) http://www.cs.arizona.edu/~collberg/Teaching/553/2011/Handouts/Handout-33.pdf