Detailseite
Projekt Druckansicht

Beschleunigte Auswertung von Algorithmen in geometrischer Algebra durch automatische Compilierung in rekonfigurierbare Recheneinheiten

Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Förderung Förderung von 2009 bis 2011
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 106413955
 
Erstellungsjahr 2012

Zusammenfassung der Projektergebnisse

Das Ziel des DFG-Forschungsprojekts war es, sowohl das Potenzial von Software-Optimierungsansätzen als auch das Parallelisierungs-Potenzial von Hardware für performante Implementierungen von geometrischer Algebra zu nutzen. Insbesondere die Arbeitspakete "Symbolische Vereinfachung von Algorithmen in geometrischer Algebra" und "Software-Code-Generatoren" sind in den Compiler Gaalop (Geometric algebra algorithms optimizer) eingeflossen, welcher auf der Homepage zur Verfügung steht. Er setzt Beschreibungen in Form der Scriptsprache CLUScript des interaktiven, visuellen Entwicklungstools CLUCalc in optimierte Implementierungen für die Programmiersprache C um. Auch das Generieren von optimiertem CLUCalc-Code ist möglich. Dies hat sich als besonders nützlich für den Nachweis der korrekten Funktionsweise des optimierten Codes erwiesen. Der optimierte Algorithmus kann nämlich alternativ in das ursprüngliche Script eingebaut und damit nachvollzogen werden, ob der optimierte Code noch genau die gleiche Funktionalität wie der ursprüngliche Code hat. Im Rahmen des Arbeitspakets "Zusammenstellen einer aussagekraftigen Sammlung von Beispielanwendungen" wurden inzwischen eine Reihe von Anwendungen mit Gaalop untersucht. Es hat sich herausgestellt, dass man die Inverse Kinematik eines fussballspielenden Roboters in Geometrischer Algebra einfach formulieren kann und dass sich mit Hilfe des automatischen Optimierungsprozesses von Gaalop Performance-Ergebnisse erzielen lassen, die vergleichbar sind mit der über einen längeren Zeitraum von Hand optimierten Vektoralgebra-Implementierung. Auch bei den Anwendungen Raytracing von Punktwolken und Visualisierung mit Poseschatzung konnten mit herkömmlichen Lösungen vergleichbare Performance-Ergebnisse erreicht werden. Signifikante Performance-Gewinne durch die Optimierung mit Gaalop konnten wir beim Greifprozess eines Roboters nachweisen. Auf der Suche nach Anwendungen, die möglichst stark für Gaalop geeignet sind, wurde die Molekulardynamik-Simulation identifiziert. Ein erster Prototyp dafür wurde als Proof-of-Concept in Zusammenarbeit mit der Universität Stuttgart erstellt. Eine Molekulardynamik-Simulation modelliert die Interaktionen eines Systems von Molekülen, welche jeweils aus einzelnen Atomen bestehen und löst die Bewegungsgleichungen numerisch für jedes Molekül. Für die Beschreibung mit Hilfe von konformer GA wird der Screw Theory Ansatz von David Hestenes verwendet. Die Ergebnisse zeigen, dass diese Anwendung sowohl aus der Sicht der Performance als auch aus der Sicht physikalischer Korrektheit bessere Ergebnisse liefert als eine Lösung mit herkömmlicher Mathematik. Im Teil-Projekt von Prof. Andreas Koch wurde Gaalop für die automatische Hardware-Generierung erweitert. Die Proof-of-Concept-Anwendung für das DFG-Projekt, die Kinematik eines virtuellen Characters einer Virtual Reality-Anwendung, wird automatisch in rekonfigurierbarer Hardware realisiert. Während die erste Version von Gaalop nur sequentielle Codestücke verarbeiten konnte, wurde schnell klar, dass erst eine Integration von GA-Funktionalitat in Standard-Programmiersprachen dazu führen kann, dass die Technologie von möglichst vielen genutzt werden kann. Die theoretischen Ansätze aus Publikationen wurden inzwischen in einen Precompiler für C++, OpenCL und CUDA umgesetzt und in meinem Buch Foundations of Geometric Algebra Computing zusammengefasst. Die o. g. Molekulardynamik-Simulation dient darin zur Beschreibung der neuen Precompiler-Funktionalität für die Programmiersprache OpenCL.

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung