Gaalop High Performance Computing based on Conformal Geometric Algebra Prof. Andreas Koch, Germany
Overview What is Gaalop? Related work Our concepts Proof-of-concept application State-of-the-art and future perspectives
Goal of Gaalop? Combination of Elegance of geometric computing based on Geometric Algebra High performance of the implementation
Related Work Software solutions Gaigen 2, [Fontijne/Dorst] Hardware solutions Implementation of a Clifford algebra co-processor design on a field programmable gate array, [Perwass et al, 2003] CliffoSor, an Innovative FPGA-based Architecture for Geometric Algebra, [Gentile et al, 2005] Hardware implementation of a geometric algebra processor core, [Mishra/Wilson, 2006]
Implementation of a CA co-processor design on a FPGA Perwass et al. 2002
Implementation of a CA co-processor design on FPGA Perwass et al. 2002
Hardware implementation of a geometric algebra processor core Mishra/Wilson, 2006 Current setup:
Current hardware solutions Geometric Algebra Algorithm Hardware solution
Gaalop (Concepts) Combination of the advantages of software and hardware optimizations 1. Optimize geometric algebra algorithm symbolically 2. Generate a hardware implementation of the (already symbolically optimized) algorithm
Gaalop (Architecture) Geometric Algebra Algorithm Symbolic simplification (Maple) IR (Intermediate( Representation) FPGA C-CodeCode CluCalc Java Latex
Symbolic simplification (based on Maple) Goal: Simplifying of expressions to the most efficient ones (addition and multiplications) CliffordLib for Maple [Ablamowicz & Fauser] OpenMaple-Interface
The general data structure of Gaalop Focus on 32-D multivector of the conformal model Goal: Compute Symbolically optimized coefficients
Example Calculation of the horizon circle:
Example Note: different formulas lead to the same result
How to implement on hardware? Sdaf Use of parallelism!
Proof-of-concept application Competitive runtime performance for inverse kinematics algorithms using conformal geometric algebra Eurographics 2006 Dietmar Hildenbrand, Daniel Fontijne, Yusheng Wang, Marc Alexa, Leo Dorst
Development of the inverse kinematics Visual development and test with CLUCalc (free software by Christian Perwass, www.clucalc.info) Easy and intuitive operations with basic geometric entities Entities like spheres and planes Outer product ^ to intersect
Symbolic simplification of the inverse kinematics
Symbolic simplification of the inverse kinematics
Symbolic simplification of the inverse kinematics
Symbolic simplification of the inverse kinematics
Symbolic simplification of the inverse kinematics
Symbolic simplification of the inverse kinematics Maple functions like simplify(), coeff() C_e[9] := -1/2*pwx*L1^2 C_e[10] := pwx C_e[16] :=
Symbolic simplification (continued) elbow circle already computed Intersect with swivel plane Resulting point pair Selection of one of the two points leads to:
Runtime performance of the inverse kinematics On the algorithmic level Embedding of quaternions ( needed for the slerp motion ) Two optimization approaches for the implementation Gaigen 2 Maple with Cliffordlib -> Three times faster than conventional solution!
Paper Efficient inverse kinematics algorithm based on Conformal Geometric Algebra using reconfigurable hardware " VISIGRAPP 2008 Dietmar Hildenbrand Holger Lange Florian Stock Andreas Koch Extention to hardware implementation
Way to efficiency? Geometric algebra algorithm Symbolic simplification C-CodeCode reconfigurable hardware FPGA
HW implementation Dataflow graph for with
HW implementation Pipeline stages
Parallelism in 2 dimensions 363 Pipeline stages, up to 20 scalar operations per stage
HW implementation results 100 inverse kinematics calculation Test platform FPGA: Xilinx Virtex XC2VP70-7, 100 MHz PC: Intel Centrino M7115CPU, 1.5 GHz
Results summary Maple-optimized implementation about 3 times faster than the conventional solution Currently with reconfigurable hardware: more than 500 times faster than the conventional solution
Gaalop state-of-the-art Geometric Algebra Algorithm (Clucalc, Maple) Symbolic simplification (Maple) IR (Intermediate( Representation) FPGA C-CodeCode CluCalc Java Latex
Gaalop future perspectives Geometric Algebra Algorithm Symbolic simplification (Maple) IR (Intermediate( Representation) FPGA C-CodeCode CluCalc Java Latex
Benefits of Geometric Computing with Gaalop Geometrically intuitive Easy to understand Easy to develop Easy to maintain and Efficient to implement Software Hardware
Acknowlegments Andreas Koch, Embedded Systems Group, TU Darmstadt Eduardo Bayro Joachim Pitt www.gaalop.de
Thank you for your attention