Folien VL-12 zusammengefasst
This commit is contained in:
parent
0bc34fb409
commit
f3016b18fb
BIN
verfahren.pdf
BIN
verfahren.pdf
Binary file not shown.
@ -724,12 +724,85 @@
|
||||
\item kleinere Rümpfe passen besser in den Instruktionscache
|
||||
\item ggf. kann eine der Schleifen parallelisiert/vektorisiert werden
|
||||
\end{itemize}
|
||||
\item Kachelschneiden
|
||||
\item Kachelschneiden: \begin{itemize}
|
||||
\item Aufteilen mehrerer geschachtelter Schleifen in Kacheln bestimmter Größe
|
||||
\item Legalität: Wenn Schleifenvertauschungen legal sind
|
||||
\item Verbesserung der Lokalität
|
||||
\item Erlaubt Registerverwendung
|
||||
\item Höherer Schleifenoverhead
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Lineare Schleifenrestrukturierungen}
|
||||
\begin{itemize}
|
||||
\item Schleifenvertauschung
|
||||
\item Richtungsumkehr
|
||||
\item Schleifenneigen
|
||||
\item Schleifenvertauschung:\begin{itemize}
|
||||
\item Innere Schleife wird zur äußeren
|
||||
\item Erhalt der schleifenunabhängigen Datenabhängigkeiten
|
||||
\item Tausch der Einträge der entsprechenden Dimensionen in Richtungsvektoren und Abhängigkeitsdistanzen der schleifengetragenen Datenabhängigkeiten
|
||||
\item Legalität: Alle Abhängigkeitsdistanzen (vorher per Definition lexikographisch positiv) müssen auch danach positiv sein
|
||||
\item Nach außen Ziehen der abhängigkeitstragenden Schleifen ermöglicht ggf. im Inneren parallelisierbare Schleife mit großer Breite
|
||||
\item ggf. Verbesserung der räumlichen oder zeitlichen Lokalität
|
||||
\item Korrektur der Indexbereiche bei nicht-rechteckigen Iterationsräumen (ggf. durch Fourier-Motzkin-Elimination)
|
||||
\end{itemize}
|
||||
\item Richtungsumkehr:\begin{itemize}
|
||||
\item Inkrement- in Dekrementschleife umwandeln (oder vice versa)
|
||||
\item Voraussetzung: alle Abhängigkeiten müssen von umgebender Schleife getragen werden
|
||||
\item ggf. Ermöglichung weiterer Optimierungen wie Verschmelzung
|
||||
\end{itemize}
|
||||
\item Neigen:\begin{itemize}
|
||||
\item Schleifenneigen:\begin{itemize}
|
||||
\item Verschiebung des Array-Indexbereichs der inneren Schleife um $f \cdot i$ mit $f$ Neigungsfaktor und $i$ Iterationsvariable der äußeren Schleife
|
||||
\item Abzug von $f \cdot i$ bei Verwendungen der inneren Iterationsvariable
|
||||
\item Abhängigkeit $(d_1, d_2)$ wird zu $(d_1, d_2 + f \cdot d_1)$ $\rightarrow$ Ermöglichung weiterer Restrukturierungen
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item Allgemeiner Fall:\begin{itemize}
|
||||
\item Transformation der Indexvektoren mit Matrix $U$ mit Eigenschaften (unimodular):\begin{itemize}
|
||||
\item $U \in \mathbb{Z}^{n\times n}$
|
||||
\item $\exists\, U^{-1} \in \mathbb{Z}^{n\times n}:\, U U^{-1} = I$
|
||||
\item Hinreichende Bedingung: $\vert\mathrm{det}(U)\vert = 1$
|
||||
\end{itemize}
|
||||
\item Legalität: Für alle Abhängigkeitsdistanzen $d$ muss gelten $0 \angle d U$
|
||||
\item Vertauschungsmatrix für Dimensionen 2 und 3: \begin{equation*}
|
||||
U = \begin{psmallmatrix}
|
||||
1 & & & \\
|
||||
& 0 & 1 & \\
|
||||
& 1 & 0 & \\
|
||||
& & & 1
|
||||
\end{psmallmatrix}
|
||||
\end{equation*}
|
||||
\item Richtungsumkehrungsmatrix für Dimension 2: \begin{equation*}
|
||||
U = \begin{psmallmatrix}
|
||||
1 & 0\\
|
||||
0 & -1
|
||||
\end{psmallmatrix}
|
||||
\end{equation*}
|
||||
\item Neigungsmatrix für Faktor $f$ in Dimension 2:\begin{equation*}
|
||||
U = \begin{psmallmatrix}
|
||||
1 & f\\
|
||||
0 & 1
|
||||
\end{psmallmatrix}
|
||||
\end{equation*}
|
||||
\end{itemize}
|
||||
\item Gezielte Konstruktion von Transformationsmatrix $U$ zur Ermöglichung bestimmter Optimierungen:\begin{itemize}
|
||||
\item Matrix $D$ aus Abhängigkeitsdistanzvektoren
|
||||
\item Gesucht: $U^{\mathrm{T}}$ mit $U^{\mathrm{T}} D^{\mathrm{T}} = D^{\mathrm{T}\prime}$, sodass $D^{\mathrm{T}\prime}$ Optimierungsanforderungen erfüllt
|
||||
\end{itemize}\begin{enumerate}
|
||||
\item Lineares Gleichungssystem $\left( I^{\mathrm{T}} \mid D^{\mathrm{T}} \right)$ zu $\left( U^{\mathrm{T}} \mid D^{\mathrm{T}\prime} \right)$ mit gewünschtem $D^{\mathrm{T}\prime}$ umformen
|
||||
\item $U^{-1}$ aus $U$ bestimmen
|
||||
\item Transformation der Verwendung der Iterationsvariablen $i, j, \textellipsis$ im Schleifenrumpf wie folgt:
|
||||
\begin{equation*}
|
||||
\begin{psmallmatrix}
|
||||
i\\
|
||||
j\\
|
||||
\vdots
|
||||
\end{psmallmatrix} = U^{-1} \begin{psmallmatrix}
|
||||
i'\\
|
||||
j'\\
|
||||
\vdots
|
||||
\end{psmallmatrix}
|
||||
\end{equation*}
|
||||
\item Anpassung der Schleifengrenzen für $i', j', \textellipsis$ mit Fourier-Motzkin, bei innerster Schleife beginnend
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
\end{document}
|
||||
|
Loading…
Reference in New Issue
Block a user