General Framework
The general framework for loop vectorization is split into four stages:
- Prelude: Where the loop-independent variables are prepared to be used inside the loop. This normally involves moving them to vector registers with specific patterns that will be used in vector instructions. This is also the place to insert the run-time dependence check. If the check decides vectorization is not possible, branch to Cleanup.
- Loop(s): All vectorizes (or not) loops, separated by SCCs clusters in order of appearance in the original code.
- Postlude: Return all loop-independent variables, inductions and reductions.
- Cleanup: Implement plain (non-vectorized) loops for iterations at the end of a loop that are not a multiple of the vector size) or for when run-time checks prohibit vector processing.
Read more about this topic: Vectorization (parallel Computing)
Famous quotes containing the words general and/or framework:
“Towards him they bend
With awful reverence prone; and as a God
Extoll him equal to the highest in Heavn:
Nor faild they to express how much they praisd,
That for the general safety he despisd
His own: for neither do the Spirits damnd
Loose all thir vertue; lest bad men should boast
Thir specious deeds on earth, which glory excites,
Or close ambition varnisht oer with zeal.”
—John Milton (16081674)
“The city is a fact in nature, like a cave, a run of mackerel or an ant-heap. But it is also a conscious work of art, and it holds within its communal framework many simpler and more personal forms of art. Mind takes form in the city; and in turn, urban forms condition mind.”
—Lewis Mumford (18951990)