Fraunhofer-Gesellschaft

Publica

Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Effiziente Vektorisierung durch semi-automatisierte Code-Optimierung im Polyedermodell

 
: Feld, Dustin

:
Volltext urn:nbn:de:0011-n-1945462 (1.8 MByte PDF)
MD5 Fingerprint: a47087d06dc2b2e468bb74aa7a91b63d
Erstellt am: 15.2.2012


Köln, 2011, VIII, 163 S.
Köln, Univ., Dipl.-Arb., 2011
Deutsch
Diplomarbeit, Elektronische Publikation
Fraunhofer SCAI ()
compiler; Optimierung; Polyedermodell; Vektorisierung; Cache; source; GCC; SIMD; SSE; Parallelität

Abstract
In den vergangenen zwei Jahrzehnten haben sich Vektoreinheiten als Beschleuniger in CPUs auch im Bereich der PCs etabliert. Allerdings sind selbst moderne Compiler nicht generell in der Lage, dieses Potenzial auszuschöpfen, wenn der Programmierer die entsprechenden Codes nicht explizit für den jeweiligen Beschleuniger schreibt. Transformationen des Codes, die für eine Nutzung der Vektoreinheiten nötig wären, können von vielen aktuellen Compilern nicht oder nicht immer realisiert werden, da die hierzu nötigen mathematischen Operationen und Analysen nicht implementiert oder noch gar nicht entwickelt sind. In dieser Arbeit wurden Methoden zur Transformation von Quellcodes entwickelt und implementiert, die auf Gomory-Cut-Lösungsverfahren der ganzzahligen Optimierung und Konzepten der Lineare n Algebra beruhen und als Vorstufe einer End-Kompilierung (durch Compiler wie den GCC oder ICC) eingesetzt werden können. Der Fokus lag auf der Entwicklung von Codeoptimierungen für eine Vektorisierung von Schleifen in C-Codes durch ein semi-automatisches Framework. Ziel der Transformationen ist eine bessere Nutzung von SIMD-Architekturen, z. B. den SSE-Einheiten aktueller x86-Prozessoren, die Prinzipien lassen sich aber auch auf andere Hardware-Architekturen mit vektorbasierten Befehlssätzen übertragen. Neben Transformationen zur Ermöglichung der Vektorisierung steht die automatische Anpassung an die vorliegende Hardware im Fokus der Betrachtung um eine für die Speichernutzung optimale Transformation durchzuführen. Durch die entwickelten Methoden können erhebliche Speedups erreicht werd en, die durch die Speicherzugriffsoptimierung z.T. deutlich über dem durch die parallelen Berechnungen möglichen Speedup liegen.

: http://publica.fraunhofer.de/dokumente/N-194546.html