Módosítások

Intel Xeon Phi

895 bájt hozzáadva, 2016. május 3., 14:17
Regularizáció
====Regularizáció====
Van egy ciklusunk, ami egy vektor elemeit módosítja. A processzor az adatokat "csokorba szedve" emeli be a belső kis méretű cache-be. Egyszerre természetesen több vektor elem is bekerül a a cache-be ezzel gyorsítva a feldolgozást. Ezen vektor iterációk valahogyan ráilleszkedik a vektorra.
 
[[Fájl:regularozation.png|Vektor regularizáció]]
 
Abban az esetben, amikor ez az illesztés nem teljesen tökéletes (lsd. piros elemek), keletkeznem héj ciklusok, melyeket a regularizációval is eliminálni lehet. <br />
A feladat eredetileg valahogyan így nézhet ki:
<pre>
for (int i = 0; i<n; i++)
A[i]=...
</pre>
 
Ez a következő átalakítással már alkalmas vektorizációra és nem lesz "peel loop" probléma.
<pre>
for (int b=0; b<n; b++) {
const int jStart = b- b%16; // mindig osztható 16-val
...
#pragma simd
for (int j = jStart; j<n; j++)
A[j]=...
 
</pre>
 
===Párhuzamosítás===
====Párhuzamos szálak ütemezése====
====Ciklus kifejtés====
====Automatikus ciklusösszevonás====
98
szerkesztés

Navigációs menü