Dr. Dietmar Hildenbrand
Technische Universität Darmstadt
Fachbereich Informatik
Geometrische Algebra:Geometrische Algebra:Eine neue, elegante und effiziente Eine neue, elegante und effiziente Methode fMethode füür viele Maschinenbauthemenr viele Maschinenbauthemen
TU Darmstadt,TU Darmstadt, 28.01.201128.01.2011
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 2
Dietmar Hildenbrand
� Diplom in Informatik an TH Darmstadt
� Positionen in der Industrie
� Promotion an der TU Darmstadt
� DFG-Forschungsprojekt im Bereich Geometric Algebra Computing
„Beschleunigte Auswertung von Algorithmen in geometrischer Algebra durch automatische Compilierung in rekonfigurierbare Recheneinheiten“
� Zusammenarbeit mit Arbeitsgruppe von Prof. Koch
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 3
Was für ein mathematisches System müsste es für das Engineering geben?
� Ein mathematisches System, wo es bisher sehr viele unterschiedliche gibt (Vektoralgebra, Proj. Geometrie, Quaternionen …) und damit� Einfacheres Erlernen
� Kein Übersetzen zwischen verschiedenen Systemen
� …
� Einfache, geometrisch intuitive, visuelle Entwicklung von Algorithmen für viele Bereiche des Engineering
� Kompakte Beschreibung
� Robuste Implementierung
� Performante Implementierung
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 4
Beispiel für Geometrische Algebra
� a,b sind Kugeln, mit denen man
direkt rechnen kann
� a ^ b� beschreibt den Schnitt von a und b
� repräsentiert einen Kreis
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 5
Beispielrechnung in Geometrischer Algebra
� Inverse Kinematik eines einfachen Roboters� p0 und p2 bekannt
� Bewegung in der Ebene
� Berechne p1
� …
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 6
Überblick
� unsere Anwendungen
� Einführung in die Geometrische Algebra,
� Beispiel: Inverse Kinematik eines einfachen Roboters
� Simulation der Molekulardynamik mit Methoden der Geometrischen Algebra
� Der Stuttgarter Fahrsimulator mit Methoden der Geometrischen Algebra (Florian Seybold, Höchstleistungsrechenzentrum Stuttgart)
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 7
TUD Spotlight „Geometrische Algebra“
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 8
Was ist “GA Computing”?
� Technologie an der Schnittstelle zwischen Mathematik, Informatik und Engineering
EngineeringEngineering
InformatikInformatikMathematikMathematik GA
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 9
Geometric Algebra Computing
Ausdehnungslehre
Grassmann
Clifford Algebra
Clifford
(Konforme) GA
Hestenes
Parallel Computing
Plattformen
Geometric
Algebra
Computing
2000 …
1882
1862
2001
Single Prozessor
Plattformen1980 …
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 10
GirlsDay 22.04.2010
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 11
GirlsDay 22.04.2010
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 12
Unsere Anwendungen
GA GA ComputingComputing
RobotikRobotik
Geometrische AlgebraGeometrische Algebra
GraphikGraphikVisionVision ……
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 13
Anwendungsbeispiel
� Computeranimation/ Virtual Reality
[[TolaniTolani et al. 2000]et al. 2000]
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 14
Anwendungsbeispiel
� Approximation von geometrischen Objekten in Punktwolken aus Laserscans
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 15
Anwendungsbeispiel
� Registrierung von Multichannel-Images
� Verallgemeinerung der Fourier-Transformation
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 16
Anwendungsbeispiel
Bewegung eines Roboters
Geometrisch intuitiver Algorithmus in geometrischer Algebra:
[Craig]
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 17
Anwendungsbeispiel
� Finite Elemente Solver� Kompakte Ausdrücke für
� Geschwindigkeiten
� Kräfte
� die rotationelle und lineare Anteile beinhalten
[Elmar Brendel et al]
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 18
Anwendungsbeispiel
� Molekular-Dynamik
� Zusammenarbeit mit dem Höchstleistungs-Rechenzentrum Stuttgart
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 19
Ziel der geometrischen Algebra
� möglichst direkteUmsetzung aus dergeometrischenVorstellung heraus
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 20
Unser Ziel
� Kombination� Eleganz der mathematischen Sprache
� Hohe Performance der Implementierung
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 21
Eigenschaften von geometrischer Algebra
� geometrische Intuitivität� Einfachheit� Kompaktheit� Robustheit� Vereinheitlichung mathematischer Systeme� Vektoralgebra� Komplexe Zahlen� Projektive Geometrie� Quaternionen� Pauli-/Dirac-Matrizen� …
� Direktes Rechnen mit geometrischen Objekten wie Kugeln, Kreisen, Ebenen
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 22
Beispiel: Schnitte von geometrischen Objekten
� a,b sind Kugeln, mit denen man
direkt rechnen kann
� a ^ b� beschreibt den Schnitt von a und b
� repräsentiert einen Kreis
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 23
Beispiel: Schnitt von Kugel und Gerade
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 24
Beispiel: das innere Produkt
� a,b 3D-Vektoren
-> Skalarprodukt
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 25
Abstände in Geometrischer Algebra
Eine Formel für
� Abstand von 2 Punkten
� Abstand zwischen Punkt und Ebene
� liegt ein Punkt innerhalb oder ausserhalb einer Kugel ?
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 26
Winkel in Geometrischer Algebra
Eine Formel für Winkel zwischen
� 2 Geraden
� 2 Ebenen
� 2 Kreisen
� …
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 27
Einordnung der (5D) konformen geometrischen Algebra
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 28
Basisvektoren
� Die 5 Basisvektoren der 5D konformen geometrischen Algebra
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 29
Punkt als spezielle Kugel
� Punkt
3D-Vektor Skalarprodukt
� Kugel
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 30
Ebene als spezielle Kugel
� Kugel
� Ebene
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 31
Gerade als spezieller Kreis
� Kreis (a^b^c)
� Kreis -> Gerade
( )
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 32
Geometrische Basis-Operationen
� Rotation um L (durch den Ursprung)
� Rotor
= Quaternion
� Anm.: die Gerade muss nicht durch den Ursprung gehen -> Rotor beschreibt Rotation um beliebige Achse
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 33
Transformationen in Geometrischer Algebra
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 34
Screw Motion
� Auch Geschwindigkeiten und Kräfte lineare und rotationelle Anteile in einem Ausdruck
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 35
CLUCalc
� Software-Paket, um� mit geometrischer Algebra zu
rechnen� die Ergebnisse zu visualisieren
� Oberfläche� Editor-Fenster� Visualisierungs-Fenster� Ausgabe-Fenster
� Freier Download über www.CluCalc.info
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 36
CLUCalc
� C-ähnliche Skript-Sprache
� 1 zu 1 – Beziehung von Formeln und Code
� Freier Download der Beispiel-Skripte: http://www.gris.informatik.tu-darmstadt.de/~dhilden/
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 37
Beispiel: Inverse Kinematik eines einfachen Roboters mit 5 Freiheitsgraden
� Einfache und intuitive Operationen� mit Objekten wie Kugeln
oder Ebenen
� Äusseres Produkt „^“ zum Schneiden von Objekten
� Inneres Produkt für die Bestimmung der Winkel
� …
CLUCalc
Freier Download über www.CluCalc.info
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 38
Was ist “GA Computing” zusammenfassend?
� Neues Forschungsgebiet� Vereinfacht viele Aufgabenstellungen im Engineering� Schnelle Umsetzung von Ideen
� Passt gut zu neuen parallelen Rechnerarchitekturen
� Für Studenten interessant:� Fast unbegrenzte Anzahl von Themen/Anwendungsgebieten� Schnell an der Spitze der aktuellen Forschung
� Für Professoren interessant:� Studenten lassen sich leicht motivieren� Bessere Einsichten in eigenes Forschungsgebiet� Schneller neue Forschungsergebnisse
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 39
CLUCalc
� Visuelle, interaktive Entwicklung
� Eingabe-Sprache von Gaalop
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 40
Gaalop
� interpretiert geometrische Algebra –Algorithmus� Hoher mathematischer Level (CLUCalc)
� Kompakte Algorithmen
� generiert optimierte Implementierung� Einfachste arithmetische Ausdrücke
� Robuste Ausdrücke
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 41
Basis: Eurographics-Paper 2006, Wien
� " Competitive runtime performance for inverse kinematicsalgorithms using conformal geometric algebra "
� Dietmar Hildenbrand, Daniel Fontijne, Yusheng Wang, Marc Alexa and Leo Dorst
� Erster Nachweis, dass ein Algorithmus in GA schneller sein kann als ein herkömmlicher Algorithmus
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 42
Gaalop
Symbolische VereinfachungSymbolische Vereinfachung
Geometrische Algebra AlgorithmusGeometrische Algebra Algorithmus
IR (IR (intermediateintermediate representationrepresentation))
CC FPGAFPGAOpenCLOpenCLCLUCalcCLUCalc ……
Sequentielle PlattformenSequentielle Plattformen Parallele Plattformen Parallele Plattformen
……
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 43
OpenCL
� http://de.wikipedia.org/wiki/OpenCL
� Neuer Industrie-Standard für heterogene Systeme
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 44
OpenCL-Workshop
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 45
Gaalop GCD for OpenCL
…OpenCL Code
##pragmapragma gcdgcd beginbegin
GA code (CLUCalc)
##pragmapragma gcdgcd endend
…OpenCL Code
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 46
Gaalop GCD for OpenCL
…OpenCL Code
##pragmapragma gcdgcd beginbegin
GA code (CLUCalc) OpenCL
##pragmapragma gcdgcd endend
…OpenCL Code
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 47
Gaalop GCD for OpenCL
…OpenCL Code
##pragmapragma gcdgcd beginbegin
GA code (CLUCalc) OpenCL
##pragmapragma gcdgcd endend
…OpenCL Code
CLUCalc Code wird mit Hilfe von Gaalop GCD als OpenCL Code in das Programm integriert
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 48
Gaalop GCD for OpenCL …
� … ist verfügbar für Windows und Linux.
� Anwendungs-Beispiel: Molekulardynamik …
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 49
Anwendung: einfache Molekular-Dynamik
� (in sich statische) Moleküle aus mehreren Atomen
� Anziehungs- und Abstossungskräfte zwischen allen Atomen
� Gut geeignet für parallele Berechnung
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 50
Kräfte zwischen den Atomen
� Lennard Jones Potenzial
www.wikipedia.de
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 51
Kräfte zwischen den Atomen
� die Lennard Jones Kraft� entspricht dem negativen Gradienten des Lennard Jones-Potenzials
� und ergibt den Vektor
in Abhängigkeit vom Abstand zwischen zwei Atomen
� Alle Kräfte (und Drehmomente) eines Moleküls können zu einer Net Force aufsummiert werden
� mit F=m*a ergibt sich die Beschleunigung des Moleküls
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 52
Kräfte zwischen den Atomen
� Konventionelle Velocity Verlet Integrations-Methode
www.wikipedia.de
Anm.: diese Schritte müssen zweimal pro Molekül ausgeführt werden� für die Translation� für die Rotation
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 53
Kräfte zwischen den Atomen
� Velocity Verlet in konformer Geometrischer Algebra (CGA)
CGA integriert Translation und Rotation in einem Ausdruck
Florian Seybold (HLRS)
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 54
Kräfte zwischen den Atomen
� Velocity Verlet in konformer Geometrischer Algebra (CGA)
Florian Seybold (HLRS)
CGA integriert Translation und Rotation in einem AusdruckCLUScript-Code der Schritte 3. und 4.
// input values..// temporary valuesw1_t_dt_1 = (am23 - (I_3 - I_2) * avel2_t * avel3_t) / I_1;w1_t_dt_2 = (am13 - (I_1 - I_3) * avel3_t * avel1_t) / I_2;w1_t_dt_3 = (am12 - (I_2 - I_1) * avel1_t * avel2_t) / I_3;w1_t_dt = e1 * w1_t_dt_1 + e2 * w1_t_dt_2 + e3 * w1_t_dt_3;// final values?V1_t_dt = einf * v1_t_dt - e1^e2^e3 * w1_t_dt;?V0_t_dt = V0_t_05dt + 0.5 * V1_t_dt * dt;
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 55
Solver Konzept
� 3 Teile
1. Verlet Zeitintegrations-Schritt 1 (pro Molekül)
� aktualisiert Position und Orientierung der Moleküle
� N Berechnungen für N Moleküle
2. Berechnung der Potenzial-Kräfte
� Aktualisiert Kräfte und Drehmomente jedes Moleküls
� n x (n-1) Berechnungen für n Atome
3. Verlet Zeitintegrations-Schritt 2 (pro Molekül)
� aktualisiert lineare und Rotations-Geschwindigkeit der Moleküle
� N Berechnungen für N Moleküle
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 56
OpenCL Solver-Konzept
CPU OpenCL enabled GPUInitialization
Loop
Upload Data
Kernel Call
Kernel Call
Kernel Call
Download Data
Visualization (optional) �
Verlet Step 1 – N threads
Compute Potential Forces - n threads
Verlet Step 2 – N threads
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 57
Ergebnisse
�Energie-Erhaltung – Numerische Stabilität
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 58
Performance-Ergebnisse
� Four Core Processor + CUDA + OpenCL Runtime
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 59
Literatur
� Interaktives CLUCalc-Tutorial� Script / Course notes
� Einfache Beispiel-Scripts von meiner Homepage
28.01.2011 | Technische Universität Darmstadt | Computer Science Department | Dietmar Hildenbrand | 60
Vielen Dank …
Top Related