5-Partitionierung

Werbung
Systempartitionierung
Dr. Jürgen Ruf
Jürgen Ruf
Systembeschreibungssprachen SS 2002
1
Inhalt
• Motivation und Einleitung
• Verilog
• SystemC
– Beschreibung von SoC-Entwürfen mit SystemC
– Systempartitionierung
– Interfacesynthese
• Esterel
• Optionale Themen
Jürgen Ruf
Systembeschreibungssprachen SS 2002
2
1
Synthese auf Systemebene
Systembeschreibung
Systemsynthese
Partitionierung
Schätzung
IF-Synthese
HW-Synthese
SW-Synthese
Maschinencode
Jürgen Ruf
Netzliste
Systembeschreibungssprachen SS 2002
3
Modelle für die Partitionierung
• Verteilen von Tasks auf Resourcen
(Allokation + Bindung)
• Problemgraph
– Knoten: funktionale und Kommunikationsobjekte
– Kanten: Abhängigkeiten
• Architekturgraph
– Knoten: funktionale- und Kommunikat. Resourcen
• Spezifikationsgraph
– Problemgraph + Architekturgraph +
Abbildungsmöglichkeiten
Jürgen Ruf
Systembeschreibungssprachen SS 2002
4
2
Problemgraph
Datenfluß
1
Problemgraph
2
1
2
5
6
3
3
7
4
Jürgen Ruf
Kommunikationsknoten
4
Systembeschreibungssprachen SS 2002
5
Architekturgraph
VRISC
RISC
Bus
VBus
HWM1
HWM2
VHWM1
Punkt-zu-Punkt
Vptp
VHWM2
Jürgen Ruf
Systembeschreibungssprachen SS 2002
6
3
Spezifikationsgraph
1
VRISC
5
3
VBus
7
VHWM1
4
Vptp
6
VHWM2
2
Jürgen Ruf
Systembeschreibungssprachen SS 2002
7
Alokation, Bindung
1
VRISC
5
3
VBus
7
VHWM1
4
Vptp
6
VHWM2
2
Jürgen Ruf
Systembeschreibungssprachen SS 2002
8
4
Spezialfall: HW/SW-Partitionierung
• Im einfachsten Fall nur zwei Blöcke: HW und
SW (Bipartitionierung)
SW
Bus
HW
Jürgen Ruf
VSW
VBUS
VHW
Systembeschreibungssprachen SS 2002
9
Partitionierung - Abstraktionsebenen
• Strukturelle Partitionierung
–
–
–
–
auf RT- oder Gatterebene
Bsp.: aufteilen der Gatter auf ASIC und FPGA
Designparameter sind bereits gut bekannt
kein Vergleich von Entwurfsalternativen mehr möglich
• Funktionale Partitionierung
– auf Systemebene
– Vergleich von Entwurfsalternativen noch möglich
(Entwurfsraumexploration)
– Designparameter sind noch nicht bekannt
➔ Schätzung nötig
Jürgen Ruf
Systembeschreibungssprachen SS 2002
10
5
Partitionierung
• Problemdefinition:
Zuordnung von n Objekten O={o1, ... , on}
zu m Partitionen P={p1, ... , pm}, so daß
– p1 ∪ ... ∪ pm = O
– p1 ∩ ... ∩ pm = ∅
– die Kosten c(P) minimal sind
das allgemeine Partitionierungsproblem ist NP
vollständig
Jürgen Ruf
Systembeschreibungssprachen SS 2002
11
Kostenfunktion - Beispiel
F(C,L,P) = wChC(C,C) + wLhL(L,L) + wPhP(P,P)
C ... Kosten in €
L ... Ausführungszeit in Sekunden
P ... Leistungsaufnahme in Watt
hC , hL , hP ... geben an, wie stark C , L , P die
Entwurfsbedingungen (Constraints) verletzen
wC , wL , wP ... Gewichtung und Normalisierung
Jürgen Ruf
Systembeschreibungssprachen SS 2002
12
6
Allgemeine Partitionierungsverfahren
• exakte Lösungsverfahren
– Enumeration der Lösungen
– Integer Linear Programs (ILP)
• heuristische Lösungsverfahren
– konstruktive Verfahren
• random mapping
• hierarchical clustering
– iterative Verfahren
• Kernighan-Lin Algorithmus
• Simulated Annealing
• evolutionäre Algorithmen
Jürgen Ruf
Systembeschreibungssprachen SS 2002
13
Konstruktive Verfahren
• Verfahren (Auswahl)
– random mapping
jedes Objekt wird zufällig auf einen Block abgebildet
– hierarchical clustering
schrittweises Zusammengruppieren von Objekten
Closenessfunktion: gibt an, wie wünschenswert die
Gruppierung zweier Objekte ist
• konstruktive Verfahren
– werden oft verwendet, um eine Anfangspartition für iterative
Verfahren zu erzeugen
– haben das Problem, dass es sehr schwierig sein kann, eine
geeignete Closenessfunktion zu definieren
Jürgen Ruf
Systembeschreibungssprachen SS 2002
14
7
Hierarchical Clustering
v1
10
10
v2
8
20
v5 = v1 ∪ v3
v3
10
v2
6
4
v5
7
4
v4
v4
Closeness gibt an, wie eng zwei Knoten
aneinander gekoppelt sind, d.h. je höher die
Closeness, desto besser ist es, wenn beide Knoten
auf der selben Resource ausgeführt werden
Jürgen Ruf
Systembeschreibungssprachen SS 2002
15
Hierarchical Clustering
10
v2
v5
7
v6 = v5 ∪ v2
v6
5.5
4
v4
Jürgen Ruf
v4
Systembeschreibungssprachen SS 2002
16
8
Hierarchical Clustering
v6
v7 = v6 ∪ v4
v7
5.5
v4
Jürgen Ruf
Systembeschreibungssprachen SS 2002
17
Hierarchical Clustering
v7 = v6 ∪ v4
cut lines
(Partition)
v6 = v5 ∪ v2
v5 = v1 ∪ v3
v1
Jürgen Ruf
v3
v2
Systembeschreibungssprachen SS 2002
v4
18
9
Partitionierung
Iterative Verfahren
• Zufallsvertauschung (random interchange)
– erzeuge Bipartition
– wähle aus jeder Partition zufällig einen Kandidaten
– vertausche Kandidaten wenn Kosten sinken
• Kernighan-Lin
• Simulated Anealing
Jürgen Ruf
Systembeschreibungssprachen SS 2002
19
Kernighan-Lin
• Erzeugung von Bipartitionen:
vertausche diejenigen Objekt in die jeweils andere Gruppe, die
den größten Kostengewinn verursachen
v6
v1
v2
v5
v4
v8
v3
Jürgen Ruf
v9
v7
Systembeschreibungssprachen SS 2002
20
10
Kernighan-Lin - Erweiterung
• Vertausche diejenigen Objekt, die den größten
Kostengewinn oder den kleinsten Kostenzuwachs
verursachen
• solange eine bessere Partition gefunden wird:
– vertausche versuchsweise jede Paarung
– nimm von diesen (Versuchs-)Partitionen diejenige mit dem
besten Kostenverhältnis und führe die entsprechenden
Umgruppierungen durch
– einmal vertauschte Objekte werden im weiteren Verlauf nicht
wieder vertauscht
Jürgen Ruf
Systembeschreibungssprachen SS 2002
21
Kernighan-Lin
• entkommt aus lokalen Minima
• Zeitkomplexität O(n3)
• Partitionierung in m Blöcke: O(m⋅n3)
Jürgen Ruf
Systembeschreibungssprachen SS 2002
22
11
Simulated Anealing
• simuliertes Ausglühen
– Metalle und Glas nehmen beim Abkühlen unter
bestimmten Bedingungen einen Zustand
minimaler Energie ein:
• bei jeder Temperatur wird ein thermodynamisches
Gleichgewicht erreicht
• die Temperatur wird beliebig langsam erniedrigt
– Wahrscheinlichkeit, dass ein Teilchen in einen
Zustand höherer Energie springt
P(ei,ej,T) = e
Jürgen Ruf
ei-ej
kT
Systembeschreibungssprachen SS 2002
23
Simulated Anealing
Anwendung auf kombinatorische Optimierung
• Energie = Kosten der Lösung
• Verringerung der Kosten mit simulierter
Temperatur, aber manchmal auch
Akzeptieren von Kostenerhöhungen
Jürgen Ruf
Systembeschreibungssprachen SS 2002
24
12
Simulated Anealing
temp = temp_start
cost = c(P)
WHILE (Frozen() == FALSE) {
WHILE (Equilibrium() == FALSE) {
P’ = RandomMove(P)
cost’ = c(P’)
deltacost = cost’ - cost
IF (Accept(deltacost,temp) > random[0,1)) {
P = P’
deltacost
cost = cost’
k*temp )
min(1,
e
}
}
temp = DecreaseTemp(temp)
}
Jürgen Ruf
Systembeschreibungssprachen SS 2002
25
Simulated Anealing
• Abkühlung: DecreaseTemp (), Frozen()
– temp_start = 1.0
– temp = α • temp (typisch: 0.8 = α =0.99)
– Abbruch bei temp < temp_min
oder wenn sich keine Verbesserung mehr ergibt
• Gleichgewicht: Equilibrium()
– nach bestimmter Anzahl von Iterationen
– oder wenn sich keine Verbesserung mehr ergibt
• Zeitkomplexität
– von exponentiell bis konstant, je nach Implementierung der
Funktionen Equilibrium, DecreaseTemp, Frozen
– je länger die Laufzeit, desto besser die Ergebnisse
– üblich: Funktionen so konstruiert, dass polynomielle Laufzeit
erreicht wird
Jürgen Ruf
Systembeschreibungssprachen SS 2002
26
13
ILP - Integer Linear Programming
• Formulierung des Partitionierungsproblems als
System linearer (Un-)Gleichungen
– binäre Variable xi,k Objekt oi im Block pk
– Kosten ci,k wenn Objekt oi im Block pk ist
– ganzzahliges lineares Programm:
xi,k ∈{0,1} 1≤ i≤ n , 1≤ k ≤ m
m
Σ x = 1 1≤ i ≤ n
k=1 i,k
m
n
minimiere k=1
Σ i=1
Σ ci,k xi,k
Jürgen Ruf
1≤i≤n,1≤k≤m
Systembeschreibungssprachen SS 2002
27
ILP
• Beschränkungen werden durch Neben-bedingungen
modelliert
– Bsp.: maximale Anzahl von hk Objekten in Partition pk
n
Σ x ≤ hk
i=1 i,k
1≤k≤m
• ILP ist NP-vollständig
– im worst-case exponentielle Laufzeit
– Lösung durch branch&bound Algorithmen
– Formulierung wird schwierig, wenn die Nebenbedingungen
nicht linear sind
Jürgen Ruf
Systembeschreibungssprachen SS 2002
28
14
Evolutionäre Algorithmen
• Vorbild: Vererbung in der Biologie
• Ausgangspunkt:
Menge von Lösungen (nicht optimal) in
kodierter (DNA) Form: Population
• Iteration zur Erzeugung neuer Populationen,
die dem Optimum näher kommen
Jürgen Ruf
Systembeschreibungssprachen SS 2002
29
Evolutionäre Algorithmen
Iteration zur Bildung neuer Lösungen:
Reproduktion
„ungeschlechtliche Fortpflanzung“
wird auch als Selektion bezeichnet
Kreuzung
„geschlechtliche FortpfanzungMutation
die Erbanlagen zweier Individuen werden
für zwei neu Individuen vermischt
Mutation
spontane Veränderung der Erbanlagen
Jürgen Ruf
Systembeschreibungssprachen SS 2002
30
15
Evolutionäre Algorithmen
P = generate_initial_population()
k = 0
do {
compute_fitness(P)
P = reproduce(P)
P = mixture(P)
P = mutation(P)
k = k + 1
while (Abbruchkriterium);
Jürgen Ruf
Systembeschreibungssprachen SS 2002
31
HW/SW-Partitionierung
• einfachster Fall: Bipartitionierungsproblem
P = {pSW , pHW }
• softwareorientierter Ansatz: P = {O, {}}
– in SW sind garantiert alle Funktionen realisierbar
– Performance kann unzureichend sein
➔ migrieren von Objekten in die HW
• hardwareorientierter Ansatz: P = {{}, O}
– in HW ist garantiert die Performance ausreichend
– Kosten können zu hoch sein
➔ migrieren von Objekten in die SW
Jürgen Ruf
Systembeschreibungssprachen SS 2002
32
16
Herunterladen