Abstract
Starting from the situation 15 years ago with a great gap between the low symbolic complexity on the one hand and the high numeric complexity of coding in Geometric Algebra on the other hand, this paper reviews some applications showing, that, in the meantime, this gap could be closed, especially for CPUs. Today, the use of Geometric Algebra in engineering applications relies heavily on the availability of software solutions for the new heterogeneous computing architectures. While most of the Geometric Algebra tools are restricted to CPU focused programming languages, in this paper, we introduce the new Gaalop (Geometric Algebra algorithms optimizer) Precompiler for heterogeneous systems (CPUs, GPUs, FPGAs, DSPs ...) based on the programming language C++ AMP (Accelerated Massive Parallelism) of the HSA (Heterogeneous System Architecture) Foundation. As a proof-of-concept we present a raytracing application together with some computing details and first performance results.
Similar content being viewed by others
References
Albert, J.: The download page of the proof-of-concept raytracer based on the gaalop precompiler for C++ AMP. https://bitbucket.org/justinator_92/geometric-algebra-raytracer/wiki/Home (2015)
Colapinto, P.: The versor home page. http://versor.mat.ucsb.edu/ (2015)
Dorst L., Fontijne D., Mann S.: Geometric Algebra for Computer Science, An Object-Oriented Approach to Geometry. Morgan Kaufmann, San Francisco (2007)
Eid, A.H.A.: Optimized Automatic Code Generation for Geometric Algebra Based Algorithms with Ray Tracing Application. PhD thesis, Suez Canal University, Port Said (2010)
Fontijne, D., Bouma, T., Dorst, L.: Gaigen 2: A geometric algebra implementation generator. http://staff.science.uva.nl/~fontijne/gaigen2.html (2007)
Franchini, S., Gentile, A., Grimaudo, M., Hung, C.A., Impastato, S., Sorbello, F., Vassallo, G., Vitabile, S.: A sliced coprocessor for native Clifford algebra operations. In: Euromico Conference on Digital System Design, Architectures, Methods and Tools (DSD) (2007)
Franchini, S., Gentile, A., Sorbello, F., Vassallo, G., Vitabile, S.: ConformalALU: a conformal geometric algebra coprocessor for medical image processing. In IEEE Transactions on Computers, 2015
Gentile A., Segreto S., Sorbello F., Vassallo G., Vitabile S., Vullo V.: Cliffosor, an innovative FPGA-based architecture for geometric algebra. ERSA 2005, 211–217 (2005)
Gregory, K., Miller, A.: C++AMP. Microsoft Press (2012)
HSA Foundation. The HSA foundation home page. http://www.hsafoundation.com/ (2015)
Hestenes, D.: Old wine in new bottles: A new algebraic framework for computational geometry. In: Eduardo Bayro-Corrochano and Garret Sobczyk, editors, Geometric Algebra with Applications in Science and Engineering. Birkhäuser (2001)
Hildenbrand, D: Geometric Computing in Computer Graphics and Robotics using Conformal Geometric Algebra. PhD thesis, TU Darmstadt. Darmstadt University of Technology (2006)
Hildenbrand D.: Foundations of Geometric Algebra Computing. Springer, Berlin (2013)
Hildenbrand, D., Charrier, P., Steinmetz, C., Pitt, J.: Gaalop home page. http://www.gaalop.de (2015)
Hildenbrand, D., Fontijne, D., Wang, Y., Alexa, M., Dorst, L.: Competitive runtime performance for inverse kinematics algorithms using conformal geometric algebra. In: Eurographics Conference Vienna (2006)
Li H., Hestenes D., Rockwood A.: Generalized homogeneous coordinates for computational geometry. In: Sommer, G. (ed.) Geometric Computing with Clifford Algebra, pp. 27–59. Springer, Berlin (2001)
Mishra, B., Wilson, P.R.: Color edge detection hardware based on geometric algebra. In: European Conference on Visual Media Production (CVMP) (2006)
Perwass, C.: The CLU home page. http://www.clucalc.info (2010)
Perwass, C., Gebken, C., Sommer, G.: Implementation of a Clifford algebra co-processor design on a field programmable gate array. In: Ablamowicz, R. (ed.) Clifford Algebras: Application to Mathematics, Physics, and Engineering, Progress in Mathematical Physics. 6th International Conference on Clifford Algebras and Applications, Cookeville, TN., Birkhäuser, pp. 561–575 (2003)
Seybold, F: Gaalet—a C++ expression template library for implementing geometric algebra (2010)
Sommer, G. (ed.): Geometric Computing with Clifford Algebra. Springer, Berlin (2001)
Stock, F., Hildenbrand, D., Koch, A.: FPGA-accelerated color edge detection using a geometric-algebra-to-verilog compiler. In: Sym- posium on System on Chip (SoC), Tampere, Finland (2013)
Woersdoerfer, F., Stock, F., Bayro-Corrochano, E., Hildenbrand, D.: Optimization and performance of a robotics grasping algorithm described in geometric algebra. In: Iberoamerican Congress on Pattern Recognition 2009, Guadalajara, Mexico (2009)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Hildenbrand, D., Albert, J., Charrier, P. et al. Geometric Algebra Computing for Heterogeneous Systems. Adv. Appl. Clifford Algebras 27, 599–620 (2017). https://doi.org/10.1007/s00006-016-0694-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00006-016-0694-6