Seminarvortrag Codeoptimierung mit linearer Programmierung Hannes Jaschitsch unh@rz.uni-arlsruhe.de 4.6.003 Inhalt Digitale Signalprozessoren (DSPs) Befehlsanordnung mit dem ritchen Pfad Lineare Programme Einführung Modellierung von Regterzuteilung und Befehlsanordnung Approximationen Ergebnse und Zusammenfassung Digitale Signalprozessoren (DSPs) Kopplungsprobleme Codeerzeugung eingesetzt in eingebetteten Systemen Signalverarbeitung Audio/Video CoDecs (FFT, DFT) Unregelmässige Architeturen verschiedene Speicherbäne, Haward Architetur. heterogene Regtersätze Instrutionen zur Parallelverabeitung (VLIW) Die meten Übersetzer nutzen die Prozessoren nicht effizient aus Codeseletion Optimale Abdecung der Zwchesprache Instrutionsanordnung Instrutionsanordnung Regterzuteilung Regter- Alloation/ Regter- Alloation Regterzuteilung Maximierung der Parallelverarbeitung 3 Minimierung der Speicherzugriffe zur Laufzeit 4
Befehlsanordnung mit dem ritchen Pfad Lineare Programme I Abhängigeitsgraph ASAP-Ordnung (as soon as possible) 1 1. 1 7 3. 4 3 4 5 3. 5 6 7 4. 6 Kritcher Pfad: 3 5 6 ALAP-Ordnung (as late as possible) 1.. 1 3 3. 4 5 4. 6 7 5 Grundlagen Mathematche Optimierungsmethode maximiere / minimiere lineare Kostenfuntion auf zulässigem Bereich dieser Bereich t durch Nebenbedingungen iniert, z.b. lineare Ungleichungen Es gibt zahlreiche mächtige Solver-Tools Regterzuteilung und Befehlsanordnung in einem homogenen Problem modellier- und lösbar. 6 Kleines Bepiel Lineare Programme II min 3x 1+ x u.d.n. x1 + x 5 x1 1 x1 + x 3 x1, x 0 x1, x IR x1, x hesen Entscheidungsvariablen x 1 0 1 P(1,) x1 7 Klassen von linearen Programmen LP (linear program) ILP, BLP (integer linear program, binary linear program) MILP (mixed integer linear program) LP s Können effizient (in polynomiellen Aufwand) gelöst werden. ILP s und BLP s Lösung NP-vollständig MILPs Natürlich ebenfalls NP-vollständig Werden zur Codeerzeugung verwendet. Lösungsdauer abhängig von #Variablen, #Bedingungen und Strutur
Codeerzeugung mit MILPs SILP Variablen inieren Ordnung der Operationen untereinander #Variablen O(n²), #Bedingungen O(n²) um Regterzuteilung erweiterbar OASIC Variablen legen den Ausführungstat für jede Anweung fest #Variablen O(n²), #Bedingungen O(n³) Regterzuteilung scheitert an der Komplexität der resultierenden Programme 9 Strutur von SILP Entscheidungsraum: Alle potentiell optimalen Programme, ob orret oder nicht. => Nebenbedingungen inieren orrete Programme. Korrete Programme im Sinne der Befehlsanordnung Weitere Einschränungen der Zielplattform Korrete Programme im Sinne der Regterzuteilung Korrete Programme 10 Modellierung der Befehlsanordnung Modellierung Befehlsanordnung I Basmodell: Resourcenflussgraphen Quelle ALUs R3 = R4+R5 R4 = R6+1 R5 = 404 Sene ALUs Entscheidungsvariablen x ij Sene R6 = [0x1f7f] Datenbusse Datenbusse Quelle R7 = [0x1f0] 11 Zielfuntion minimiere maxtate Einhaltung der Zeitschrane (I) (III) Flussbedingung t i maxtate Ausführungsbedingung (II) K in( i, ) = 1 Resourcenbeschränung out( q, ) R (IV) in (, i) = out (, i) i I i I K K, i I x ij t i R in( i, ) out( i, ) Anweung i gibt Resource an j Tat, in dem Anweung i beginnt Anzahl Resourcen vom Typ Eingangsgrad von i bzgl Resource Ausgangsgrad 1
Modellierung Befehlsanordnung II Wahrung der Abhängigeiten (V) Serialierungsbedingung (VI) t t t j j t z + ( x 1) α j i i ij K ij = z i asap j) + α t i t i w 0 i ( i, j) E U E ( i, j) E out anti ij true ( alap( i) t i x ij w j zi Tat, in dem Anweung i beginnt Anweung i gibt Resource an j Ausführungzeit von Anweung j Zeit zwchen möglichen Eingaben der Resource für Anweung i 13 Modellierung der Regterzuteilung Regterflussgraph Knoten sind Anweungen die in ein Regter schreiben Für jede Regtergruppe ein Quellnoten Nebenbedingungen Ausführungsbedingung, Resourcenbeschränung und Flussbedingungen wie vorher Neu: Lebenszeit einer Definition muss alle Verwendungen überspannen Neu: Serialierungsbedingung: Ein Regter darf erst beschrieben werden wenn seine Lebenszeit beendet t. 14 Approximationstechnien für SILP Weiterer Vorteil linearer Programme: Rundung Isolierte Flussanalyse Schrittwee Approximation der olierten Flussanalyse Untere Schranen für das Optimum berechenbar Graphenalgorithmen berechnen obere Schranen Damit ann man Lösungen bewerten, selbst wenn das Optimum nicht berechnet werden ann 15 16
Ergebnse I Experimente für den ADSP-106x Prozessor unter Einsatz von CPLEX Typche Testprogramme DFT, digitale Filter, Bildverarbeitung, Htogramm wenige Grundblöce (1-4) zwchen 1 und 49 Anweungen Ergebnse II Lösungsdauer Bestimmung des Optimums dauerte oft viele Stunden lang Mit Approximationstechnien b zu einer Stunde In Einzelfällen onnte nur die Befehlsanordnung modelliert werden Qualität der Approximationen Optimale Codesequenz fast immer gefunden Graph-basierte Verfahren im Schnitt 13% schlechter Untere Schranen Im Schnitt 14% unter tatsächlichem Optimum 17 1 Zusammenfassung Werbung Regterzuteilung und Instrutionsanordnung mit ILP zusammen modellierbar Untere Schranen für Optimum durch Relaxierung berechenbar Lösungen önnen gut roximiert werden. Einfache Anpassung an verschiedene Zielplattformen möglich Trotzdem sehr hohe Rechenzeiten, daher nur für ritche Programmabschnitte verwendbar. Die hier vorgeschlagenen Methoden sind von Daniel Kästner ausführlich untersucht worden (einfach mal googlen ;) Lineare Programme sind Gegenstand der Vorlesung Operations Research (diese t als Ergänzungsfach abrechenbar) Standardwer: Neumann, Morloc: Operations Research (Tipp: leihen, nicht aufen!) 19 0
Ergebnse III - Codequalität Dane! Fragen? 1 Name fir fir whetp3 whetp3 hto hto conv conv Modus +ra +ra +ra +ra +ra +ra Methode Codelänge - 7-14 0 1-31 17 17 untere Schrane 0% 6 14% 1 14% 16 0% 7 13% 1 9% Rechenzeit 1.69 sec 19.5 sec >4h 6 sec >4h 9 min 0 sec h 4 min 5.96 sec >4h 1h min h 1 min 53.66 sec Ergebnse IV Umfang der Programme Zum Vergleich: Name Modus Nebenbed. Binärvariablen Grösse(b) OASIC(b) fir +ra 4 675 5.94 769 161 77 4.15 01.3 +ra 606 950 9.37 697.1 405 14 14. 3.6 +ra 143 101 94.59 4555.34 whetp3 33 14 15.6 15.5 hto 716 434 9.66 175.3 conv 963 45 40.09 36.73 3