Automatisches Parallelisieren - Vorlesung im Wintersemester 2010/11

Werbung
Automatisches Parallelisieren
Vorlesung im Wintersemester 2010/11
Eberhard Zehendner
FSU Jena
Thema: Retiming
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
1 / 33
Schleifenverdichtung (loop compaction)
Schleifenverdichtung
( )
Berechne zu p Prozessoren listenbasierten Ablaufplan 0 für A G
Konstruiere daraus zyklischen Ablaufplan ( ) = (sj ) + i mit = ( )
i ; sj
0
0
Definition ((G))
( )
( )
G ist das maximale Gewicht eines Pfads in A G
Satz (Abschätzung der Güte der Heuristik)
p opt (p) + (p
p Eberhard Zehendner (FSU Jena)
) (G)
1
Automatisches Parallelisieren
Retiming
2 / 33
Abschätzung der Güte der Heuristik
Satz (Abschätzung der Güte der Heuristik)
p opt (p) + (p
p ) (G)
1
Beweis.
Ansatz wie für Güteschranke der listenbasierten Ablaufplanung
gilt:
) () + Pj (sj )
Benutze () (G)
P
und j (sj ) p opt (p)
Für gewissen Abhängigkeitspfad
p
( ) (p
0
1
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
3 / 33
Naiver Ansatz erfolglos
Problem der Abschätzung
p opt (p) + (p
p ) (G)
1
( )
()
A priori kein Zusammenhang zwischen G und opt p
Zunächst nur uninteressante globale Schranken, etwa
p opt (p) mittels (G) ( )
Abhilfe
0
( )
Vorgeschaltete Minimierung von G
durch Schleifenverschiebung (1. Schritt im Software-Pipelining)
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
4 / 33
Schleifenverschiebung (loop shifting)
Definition (Retiming)
: ! N zu G = (V ; E ; ; )
Retiming ist Funktion r V
Definition (Schleifenverschiebung)
Nach Schleifenverschiebung mit Retiming r repräsentiert generischer Auftrag sj
Instanzen i rj ; sj statt Instanzen i ; sj
(
)
Interpretation
( )
( )
Retiming r verzögert Instanz i ; sj um rj Iterationen
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
5 / 33
Eigenschaften des Retimings r
Modifizierte Distanzfunktion
()
= (sj ; sk ) geht über in Distanz r (e) = (e) + rk
Aus G = (V ; E ; ; ) wird Gr = (V ; E ; r ; )
e auf e
rj
Distanzen auf Pfaden
! sk in G gilt r () = () + rk
Für alle Zyklen C gilt r (C ) = (C )
Für alle Pfade sj
rj
Pfade geringster Distanz zwischen zwei Knoten sj und sk stimmen in G und Gr überein
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
6 / 33
Legales Retiming
Erhaltung der Präzedenz sj
()
sk zur Kante e = (sj ; sk )
r e > 0 Präzedenz wird schleifenbefördert:
ist durch serielle Ausführung der Schleifeniterationen garantiert
( ) = 0 Präzedenz wird schleifenunabhängig:
r e
()
sj ist textuell vor sk zu platzieren, um ursprüngliche Abfolge zu erzwingen;
immer möglich, da G (und damit Gr ) keine Zyklen vom Gewicht Null besitzt
r e < 0 Präzedenz verletzt:
nicht erlaubt, r daher illegal
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
7 / 33
Semantische Äquivalenz
Retiming und Ablaufpläne
r Ablaufplan für Gr
, mit (i ; sj ) = r (i + rj ; sj ) Ablaufplan für G
Konstanten zyklischer Ablaufpläne durch cj
= cr j + rj verbunden
;
Ursprüngliches Programm äquivalent umformen
Schleifenverschiebung mit legalem Retiming
Ablaufplanung für neuen Schleifenrumpf
Geeignete Schleifenabschälung (loop peeling)
Entfernung überzähliger Aufträge in abgerollten Programmstücken
Eventuell Erzeugung von Mehrversionscode
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
8 / 33
Definitionen zum Retiming
Definition (Wj ;k , Dj ;k , (G))
; sj ! sk , die sj mit sk verbinden
Triviale Pfade = (sj ) mit () = 0, () = (sj )
Wj k = minf () : sj ! sk g (falls es ein solches gibt)
Dj k = maxf() : sj ! sk ^ () = Wj k g (falls es ein solches gibt)
(G) = maxf() : () = 0g
Menge der Pfade
;
;
Eberhard Zehendner (FSU Jena)
;
Automatisches Parallelisieren
Retiming
9 / 33
Retiming-Lemma
Lemma (Schranke für schwersten Pfad in A(G))
( ) c , Wj k 1 8sj ; sk 2 V ; Dj k > c
G
;
;
Beweis ())
( ) c, sj ; sk 2 V , Dj k > c, Wj k = 0
Dann gibt es ; sj ! sk ; () = 0; () = Dj k > c
Es folgt Widerspruch (G) () > c
Sei G
;
;
;
Beweis (()
; sj ! sk ; () = 0
Es folgt Wj k = 0
Also () Dj k c
Sei
;
;
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
10 / 33
Erfüllbarkeitstest für Retiming
Satz (Lineares Programm für Retiming)
( ) ,
8 =( )2
8
2
r legales Retiming mit Gr
c
rj rk
e
e
sj ; sk
E
rj rk
Wj ;k 1
sj ; sk V ; Dj ;k > c
()
Beweis.
( ) = (e) + rk
r e
rj für e
= (sj ; sk )
Retiming genau dann legal, wenn r
Wr ;j ;k
= Wj k + rk
;
Bemerkung
Für Dj ;k > c ist rj
rk
0, also erste Bedingung gilt
( ) c , Wr j k 1 8sj ; sk 2 V ; Dr j k > c
rj , Dr j k = Dj k
Dann mit Lemma: Gr
; ;
; ;
; ;
;
(e) redundant wegen Wj k (e)
Eberhard Zehendner (FSU Jena)
;
Automatisches Parallelisieren
Retiming
11 / 33
Retiming-Verfahren von Leiserson und Saxe
Definition (opt (G))
( ) = minf(Gr ) : r legales Retimingg
opt G
Berechnung eines legalen Retimings r mit (Gr ) = opt (G)
( )
1. Entfernung isolierter Knoten, untere Schranke für opt G
2. Berechnung von Wj ;k und Dj ;k für alle nicht isolierten sj ; sk
3. Sortieren der Werte von Dj ;k
4. Binäre Suche nach kleinstem erfüllenden c
Erfüllbarkeitstest mittels Bellman-Ford
5. Potenzialfunktion für c
Eberhard Zehendner (FSU Jena)
= opt (G) auf Werten von Dj k ,
;
= opt (G) ist gesuchtes Retiming r
Automatisches Parallelisieren
Retiming
12 / 33
Retiming-Verfahren: Phase 1
Untere Schranke für opt (G)
( ) (v ) 8v 2 V
opt G
Berechne untere Schranke
(j j)
(G) = maxv
2V
()
v
Zeitkomplexität O V
Entferne isolierte Knoten
Isolierte Knoten tragen keine weitere Information
Durchlaufen der Kanten findet alle nicht isolierten Knoten
j j 2 O(jE j)
Reduzierte Knotenmenge V mit V
(j j)
Zeitkomplexität O E
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
13 / 33
Retiming-Verfahren: Phase 2
Berechne Wj ;k und Dj ;k für alle sj ; sk
2
= (V
in G
; E ; ; )
V
() über alle Pfade von sj nach sk
Maximiere sodann () über diese Teilmenge
Minimiere all-pairs shortest-path problem
(j j3 )
(j j jE j + jV j2 log jV j)
Floyd-Warshall-Algorithmus, Zeitkomplexität O V
Alternativ: Algorithmus von Johnson, O V
Berechne leichteste Pfade zwischen je zwei Knoten in Graph G0
G0
= (V ; E ; ) mit (e) = ((e); (sj )) für alle e = (sj ; sk ) 2 E
Addition auf Gewichten komponentenweise, Vergleich lexikalisch
(x ; y ) Gewicht eines leichtesten Pfads von sj zu sk in G , dann Wj k = x und Dj k = (sk )
0
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
;
;
Retiming
y
14 / 33
Floyd-Warshall-Algorithmus
Allgemeiner Floyd-Warshall-Algorithmus
DO k = 1, n
DO i = 1, n
DO j = 1, n
d(i,j) = min ( d(i,j), d(i,k) + d(k,j) )
Initialisierung und spezielle Rechenregeln
( ) = ((e); (sj )), falls j 6= k und e = (sj ; sk ) 2 E
d (j ; j ) = (0; 0)
d (j ; k ) = (1; 0) sonst
(x1 ; y1 ) + (x2 ; y2 ) = (x1 + x2 ; y1 + y2 )
min((x1 ; y1 ); (x2 ; y2 )) = (min(x1 ; x2 ); h)
mit h = y1 für x1 < x2 , h = y2 für x2 < x1 , h = min(y1 ; y2 ) sonst
min(x ; 1) = min(1; x ) = x
x +1=1+x =1
d j; k
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
15 / 33
Retiming-Verfahren: Phase 3
Sortiere Werte von Dj ;k
Zu Retiming r gibt es Pfad sj
(j j2 ) Werte zu sortieren
! sk mit (Gr ) = () = Dj k
;
O V
(j j2 log jV j), z. B. Quicksort
Optimierung: nur Werte Dj k > (G) sortieren
D = fDj k (G)g
Sortieren in Zeitkomplexität O V
;
;
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
16 / 33
Retiming-Verfahren: Phase 4
Potenzialgraph für charakteristische Ungleichungen
jV j Knoten sj , maximal jV j2 jV j Kanten (sj ; sk ), sj 6= sk :
Kante e = (sj ; sk ) mit ! (e) = (e), falls e 2 E ; Dj k c
Potenzialungleichung rj (e) rk entspricht rj rk (e)
;
= (sj ; sk ) mit !(e) = 1 Wj k , falls Dj k > c
+ 1 Wj k rk entspricht rj
(sk ) > c: rj
rk Wj k
(sj ) > c oder Dj k
Kante e
;
Potenzialungleichung rj
Dj ;k
;
;
;
;
rk
Wj k
;
1
1 redundant
Binäre Suche nach opt (G) 2 D
Erfüllbarkeitstest für ein c
2 D mittels Bellman-Ford
Bisektion der linear sortierten Menge D
Kleinstes erfüllendes c
Eberhard Zehendner (FSU Jena)
2 D ist opt (G)
Automatisches Parallelisieren
Retiming
17 / 33
Retiming-Verfahren: Phase 5
Bestimmung des Retimings
Aufruf von Bellman-Ford mit c
= opt (G) war erfolgreich
Gespeicherte Potenzialfunktion ganzzahlig, da ! ganzzahlig
Retiming ergibt sich durch rj
Eberhard Zehendner (FSU Jena)
= (sj ) für sj 2 V und rj = 0 sonst
Automatisches Parallelisieren
Retiming
18 / 33
Zeitkomplexität des Retiming-Verfahrens
j3 log jV
j + jV j)
Gesamtkomplexität O (jV
(j j) für (G), O(jE j) für isolierte Knoten
(j j3 ) für Floyd-Warshall-Verfahren
j2 log jV j) für Sortieren von O(jV j2 ) Werten
Phase 3 O (jV
j3 ) für jeden Aufruf von Bellman-Ford,
Phase 4 O (jV
j) Aufrufe wegen Bisektion auf O(jV j2 ),
O (log jV
j3 log jV j)
ergibt insgesamt O (jV
Phase 5 O (jV j) für Auslesen der Werte
Phase 1 O V
Phase 2 O V
Vereinfachte Komplexitätsformeln
(j j3 log jV j)
O (jE j3 log jE j + jV j) für jE j 2 o(jV j)
O V
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
19 / 33
Optimierter Algorithmus für Phase 4
Geringere Zeitkomplexität mit Folgendem statt Bellman-Ford
( ) := 0 für alle v 2 V , O(jV j)
j 1-mal:
4.2. Wiederhole jV
4.1. Setze v
( ) ( )
( ) = ( ) + ( )
( ) := ( ) +
4.2.1. Berechne A Gr , O jE j
4.2.2. Berechne
v
vl v
v für alle v 2 A Gr , O jE j
4.2.3. Setze v
v
1 für alle v 2 A Gr mit
v > c, O jE j
( )
( )
( ) c, O(jE j)
( ) ( )
( )
( )
4.3. Berechne A Gr und teste Gr
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
20 / 33
Zeitkomplexität des optimierten Retiming-Verfahrens
j jE j log jV
j + jV j)
Gesamtkomplexität O (jV
(j j) für (G), O(jE j) für isolierte Knoten
(j j jE j + jV j2 log jV j) für Johnson-Verfahren
j2 log jV j) für Sortieren von O(jV j2 ) Werten
Phase 3 O (jV
j jE j) für jeden Aufruf in Phase 4,
Phase 4 O (jV
j) Aufrufe wegen Bisektion auf O(jV j2 ),
O (log jV
j jE j log jV j)
ergibt insgesamt O (jV
Phase 5 O (jV j) für Auslesen der Werte
Phase 1 O V
Phase 2 O V
Vereinfachte Komplexitätsformeln
(j j jE j log jV j) für jE j 2 o(jV j2 )
O (jE j2 log jE j + jV j) für jE j 2 o(jV j)
O V
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
21 / 33
Schleifenverdichtung nach optimalem Retiming
Satz (Schleifenverdichtung nach optimalem Retiming)
opt
(1) opt (G) dopt (1)e + max
1
Beweis.
( ) = opt (G)
( )
:= ( ) = opt (G)
Ablaufplan (i ; sj ) = (sj ) + i
opt (1) = opt (G)
r Retiming mit Gr
0 ASAP-Schedule auf A Gr
0
0
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
22 / 33
Beweis von opt (G) dopt (1)e + max
1
( ) = cj + i Ablaufplan für G, = dopt (1)e
= cj mod , rj = bcj =c, also cj = rj + qj
cj + (sj ) ck + (e) für e = (sj ; sk ) 2 E
qj qk + (sj ) ( (e) + rk rj )
qj qk + (sj ) qk + (sj ) qk > (e) + rk
rj > 1
(e) + rk
rj 0, also r legales Retiming
= (s1 ; : : : ; sn ) Pfad in A(Gr )
(e) + rk
rj = 0 ) (sj ) qk qj für e = (sj ; sk ) 2 E
P
n
() =
1 + (sn ) k =1 (sk ) q1 + qn + (sn ) qn + (sn ) opt (G) (Gr ) = maxf() : 2 A(Gr )g 1 + max
i ; sj
qj
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
1
+ max
Retiming
23 / 33
Güteschranke nach optimalem Retiming
Satz (Güteschranke nach optimalem Retiming)
Zyklischer Ablaufplan mit Initiierungsintervall , wobei
p opt (p) + (p 1) (dopt (1)e + max 1)
(1) opt (p)
kann in Zeit O (jV j jE j log jV j) berechnet werden
p opt
Beweis.
p opt (p) + (p 1) (G)
p opt (p) + (p 1) opt (G) nach optimalem Retiming
opt (G) dopt (1)e + max
1
p p Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
24 / 33
Minimierung der schleifenunabhängigen Präzedenzen
Freiheitsgrade für Instanzbindung schaffen
( )
( ) = opt (G)
Minimiere Anzahl der Kanten in A Gr mit Gr
Soll zu verkürzter Ausführungszeit führen
( ) = 1, falls r (e) = 0; ansonsten v (e) = 0
Neue Variable v e
P v (e); v (e) 2 f0; 1g
Beschreibung durch ganzzahlig lineares Programm (ILP)
min
e 2E
rj
rj
rk
rk
( ) (e)
v e
Wj k
Eberhard Zehendner (FSU Jena)
;
(Anzahl der Kanten vom Gewicht Null in Gr )
1
1
8e = (sj ; sk ) 2 E
8sj ; sk 2 V ; Dj k > opt (G)
;
Automatisches Parallelisieren
Retiming
25 / 33
Beweis des ganzzahlig linearen Programms
P v (e); v (e) 2 f0; 1g
Ganzzahlig lineares Programm
min
e 2E
rj
rj
rk
rk
( ) (e)
v e
Wj k
;
(Anzahl der Kanten vom Gewicht Null in Gr )
1
1
8e = (sj ; sk ) 2 E
8sj ; sk 2 V ; Dj k > opt (G)
;
Beweis.
) r legales Retiming mit (Gr ) = opt (G)
()
rk v (e) (e) 1
r (e) = 0 ) v (e) 1 also v (e) = 1 (e wird gezählt)
r (e) > 0 ) v (e) = 0 und v (e) = 1 möglich
P v (e) zieht v (e) auf Null (e wird nicht gezählt)
Minimierung über
r ; v ganzzahlige Lösung
v e nur eingeschränkt durch rj
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
26 / 33
Lineare Programme und unimodulare Matrizen
Definition (unimodulare Matrix)
Ganzzahlige quadratische Matrix A unimodular
,
, jAj = 1
Ganzzahlige Matrix A total unimodular
Jede nicht singuläre quadratische Submatrix von A ist unimodular
Satz (ganzzahlige Ecken eines Polyeders)
A total unimodular, b ganz
) fx 0 : Ax bg hat nur ganze Ecken
Anwendung auf lineares Programm mit rj ; v (e) 0
rj
rj
rk
rk
( ) 1
( ) (e )
v e
v e
Wj k
Eberhard Zehendner (FSU Jena)
;
1
1
8e 2 E
8e = (sj ; sk ) 2 E
8sj ; sk 2 V ; Dj k > opt (G)
;
Automatisches Parallelisieren
Retiming
27 / 33
ILP durch LP ersetzen
P v (e)
Lineares Programm (LP) mit ausschließlich ganzzahligen Optimallösungen
min
e 2E
(Anzahl der Kanten vom Gewicht Null in Gr )
()
()
v (e)
v e
v e
rj
rj
rj
rk
rk
0
1
0
(e)
Wj k
;
1
1
8e 2 E
8e 2 E
8sj 2 V
8e = (sj ; sk ) 2 E
8sj ; sk 2 V ; Dj k > opt (G)
;
Bemerkung
Berechnung in polynomialer Zeit möglich
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
28 / 33
Dekomposition des Problems
Definition (starke Zusammenhangskomponente)
Teilgraph eines gerichteten Graphen
je zwei Knoten sind durch gerichteten Pfad verbunden
maximal bezüglich dieser Eigenschaft
Reduzierte Komplexität durch Dekomposition
Jeder Zyklus liegt in genau einer starken Zusammenhangskomponente
Separate Lösung auf jeder starken Zusammenhangskomponente möglich
Starke Zusammenhangskomponenten sind Knoten des gerichteten azyklischen
Kollabierungsgraphen
Additive Verschiebung der Retimings der Zusammenhangskomponenten gegeneinander
Nur positiv gewichtete Kanten zwischen starken Zusammenhangskomponenten erlauben
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
29 / 33
Zyklischer Ablaufplan mit Ressourcenbeschränkung
Heuristik
I. Bestimme starke Zusammenhangskomponenten G(i ) von G
( )
II. Berechne opt G(i ) durch Retiming
(i )
III. Minimiere Anzahl der Kanten vom Gewicht Null in Gr
( (i ) )
IV. Bestimme listenbasierten Ablaufplan 0 für A Gr
V. Verschiebe Retimings der Zusammenhangskomponenten so gegeneinander,
dass positive Kantengewichte entstehen
VI. Setze 0 zu zyklischem Ablaufplan fort:
i ; sj
r i rj ; sj
0 sj
0
i
( )= ( +
) = ( ) + ( ) ( + rj )
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
30 / 33
Die schlechten Nachrichten
Für eine gewählte Listenheuristik . . .
( )
können einem Gr mehrere entsprechen
( )
ist nicht notwendig monoton in Gr
( )
ist für festes Gr nicht notwendig monoton in der Anzahl der Kanten vom Gewicht Null
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
31 / 33
Rationale Ablaufpläne mit Ressourcenbeschränkung
Von zyklischen zu rationalen Ablaufplänen
Abrollen von Iterationen ermöglicht evtl. kürzere Ablaufpläne
Führt im Allgemeinen zu rationalen Ablaufplänen
Diese sind nicht unbedingt K-periodisch im strengen Sinne
=
Um zu durchschnittlicher Zykluszeit p=q zu kommen,
kann die Schleife versuchsweise q Mal abgerollt werden
Optimale Lösungen haben evtl. die Eigenschaft,
dass sich jede Iteration mit der nächsten überlappt
Können mit Retiming und Abrollen alleine nicht gefunden werden
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
32 / 33
Literatur
Charles E. Leiserson, James B. Saxe:
Retiming Synchronous Circuitry. Algorithmica (1991) 6:5–35
Christos H. Papadimitriou, Kenneth Steiglitz:
Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, 1982
Eberhard Zehendner (FSU Jena)
Automatisches Parallelisieren
Retiming
33 / 33
Herunterladen