Abstract
Rendering performance is an everlasting goal of computer graphics and significant driver for advances in both, hardware architecture and algorithms. Thereby, it has become possible to apply advanced computer graphics technology even in low-cost embedded appliances, such as car instruments. Yet, to come up with an efficient implementation, developers have to put enormous efforts into hardware/problem-specific tailoring, fine-tuning, and domain exploration, which requires profound expert knowledge. If a good solution has been found, there is a high probability that it does not work as well with other architectures or even the next hardware generation. Generative DSL-based approaches could mitigate these efforts and provide for an efficient exploration of algorithmic variants and hardware-specific tuning ideas. However, in vertically organized industries, such as automotive, suppliers are reluctant to introduce these techniques as they fear loss of control, high introduction costs, and additional constraints imposed by the OEM with respect to software and tool-chain certification. Moreover, suppliers do not want to share their generic solutions with the OEM, but only concrete instances. To this end, we propose a light-weight and incremental approach for meta programming of graphics applications. Our approach relies on an existing formulation of C-like languages that is amenable to meta programming, which we extend to become a lightweight language to combine algorithmic features. Our method provides a concise notation for meta programs and generates easily sharable output in the appropriate C-style target language.
- T. Aila and S. Laine. Understanding the efficiency of ray traversal on gpus. In Proc. High-Performance Graphics 2009, pages 145–149, 2009. Google Scholar
Digital Library
- T. Aila, S. Laine, and T. Karras. Understanding the efficiency of ray traversal on GPUs – Kepler and Fermi addendum. NVIDIA Technical Report NVR-2012-02, NVIDIA Corporation, June 2012.Google Scholar
- J. Amanatides and A. Woo. A fast voxel traversal algorithm for ray tracing. In In Eurographics ’87, pages 3–10, 1987.Google Scholar
- S. Apel and C. Kästner. Virtual separation of concerns - a second chance for preprocessors. Journal of Object Technology, 8(6):59–78, 2009.Google Scholar
Cross Ref
- A. Appel. Some techniques for shading machine renderings of solids. In Proceedings of the April 30–May 2, 1968, Spring Joint Computer Conference, AFIPS ’68 (Spring), pages 37–45, New York, NY, USA, 1968. ACM. Google Scholar
Digital Library
- R. Barringer and T. Akenine-Möller. Dynamic ray stream traversal. ACM Trans. Graph., 33(4):151:1–151:9, July 2014. Google Scholar
Digital Library
- C. Benthin, S. Woop, M. Nießner, K. Selgrad, and I. Wald. Efficient ray tracing of subdivision surfaces using tessellation caching. In Proc. High-Performance Graphics 2015, 2015. Google Scholar
Digital Library
- D. G. Bobrow, L. G. Demichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, and D. A. Moon. Common Lisp Object System specification 1. programmer interface concepts. Lisp and Symbolic Computation, 1(2): 245–298, Sept. 1988.Google Scholar
- C. Calcagno, W. Taha, L. Huang, and X. Leroy. Implementing multistage languages using asts, gensym, and reflection. In Proceedings of the 2Nd International Conference on Generative Programming and Component Engineering, GPCE ’03, pages 57–76, New York, NY, USA, 2003. Springer-Verlag New York, Inc. ISBN 3-540-20102-5. Google Scholar
Digital Library
- P. Christensen, J. Fong, D. Laur, and D. Batali. Ray tracing for the movie ‘cars’. Symposium on Interactive Ray Tracing, 0:1–6, 2006.Google Scholar
- K. Czarnecki and U. W. Eisenecker. Generative Programming. Methods, Tools and Applications. Addison-Wesley, May 2000. ISBN 0-20-13097- 77. Google Scholar
Digital Library
- K. Czarnecki, U. Eisenecker, R. Glück, D. Vandevoorde, and T. Veldhuizen. Generative programming and active libraries. In M. Jazayeri, R. Loos, and D. Musser, editors, Generic Programming, volume 1766 of Lecture Notes in Computer Science, pages 25–39. Springer-Verlag, 2000. ISBN 978-3-540-41090-4. Google Scholar
Digital Library
- H. Dammertz, J. Hanika, and A. Keller. Shallow bounding volume hierarchies for fast simd ray tracing of incoherent rays. Comput. Graph. Forum, 27(4):1225–1233, 2008. Google Scholar
Digital Library
- Z. DeVito, J. Hegarty, A. Aiken, P. Hanrahan, and J. Vitek. Terra: A multi-stage language for high-performance computing. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 105–116, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2014-6. Google Scholar
Digital Library
- P. Dutre, K. Bala, P. Bekaert, and P. Shirley. Advanced Global Illumination. AK Peters Ltd, 2006. Google Scholar
Cross Ref
- M. Ernst and G. Greiner. Early split clipping for bounding volume hierarchies. In Proceedings of the 2007 IEEE Symposium on Interactive Ray Tracing, RT ’07, pages 73–78, Washington, DC, USA, 2007. IEEE Computer Society. Google Scholar
Digital Library
- M. Ernst and G. Greiner. Multi Bounding Volume Hierarchies. In IEEE Symposium on Interactive Ray Tracing, pages 35–40, Aug. 2008.Google Scholar
- N. Feltman, M. Lee, and K. Fatahalian. SRDH: Specializing BVH Construction and Traversal Order Using Representative Shadow Ray Sets. In C. Dachsbacher, J. Munkberg, and J. Pantaleoni, editors, Eurographics/ ACM SIGGRAPH Symposium on High Performance Graphics. The Eurographics Association, 2012. Google Scholar
Digital Library
- A. Fredriksson. Amplifying C. http://voodooslide.blogspot.de/2010/01/amplifying-c.html, 2010.Google Scholar
- A. S. Glassner. Tutorial: Computer graphics; image synthesis. chapter Space Subdivision for Fast Ray Tracing, pages 160–167. Computer Science Press, Inc., New York, NY, USA, 1988. ISBN 0-8186-8854-4. Google Scholar
Digital Library
- A. S. Glassner, editor. An Introduction to Ray Tracing. Academic Press Ltd., London, UK, UK, 1989. ISBN 0-12-286160-4. Google Scholar
Digital Library
- G. Guennebaud, B. Jacob, et al. Eigen v3. http://eigen.tuxfamily.org, 2010.Google Scholar
- J. Gunther, S. Popov, H.-P. Seidel, and P. Slusallek. Realtime ray tracing on gpu with bvh-based packet traversal. In Proceedings of the 2007 IEEE Symposium on Interactive Ray Tracing, RT ’07, pages 113–118, Washington, DC, USA, 2007. IEEE Computer Society. Google Scholar
Digital Library
- M. Hapala, T. Davidovic, I. Wald, V. Havran, and P. Slusallek. Efficient stack-less bvh traversal for ray tracing. In 27th Spring Conference on Computer Graphics (SCCG 2011), 2011. Google Scholar
Digital Library
- V. Havran and J. Bittner. On improving kd-trees for ray shooting. Journal of WSCG, 10(1):209–216, February 2002.Google Scholar
- T. Karras. Maximizing parallelism in the construction of bvhs, octrees, and k-d trees. In Proceedings of the Fourth ACM SIGGRAPH / Eurographics Conference on High-Performance Graphics, EGGHHPG’12, pages 33–37, Aire-la-Ville, Switzerland, Switzerland, 2012. Google Scholar
Digital Library
- Eurographics Association.Google Scholar
- T. L. Kay and J. T. Kajiya. Ray tracing complex scenes. In Proceedings of the 13th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’86, pages 269–278, New York, NY, USA, 1986. ACM. Google Scholar
Digital Library
- A. Keller, T. Karras, I. Wald, T. Aila, S. Laine, J. Bikker, C. P. Gribble, W. Lee, and J. McCombe. Ray tracing is the future and ever will be.. In International Conference on Computer Graphics and Interactive Techniques, SIGGRAPH 2013, Anaheim, CA, USA, July 21-25, 2013, Courses, pages 9:1–9:7, 2013. Google Scholar
Digital Library
- J. T. Klosowski, M. Held, J. S. B. Mitchell, H. Sowizral, and K. Zikan. Efficient collision detection using bounding volume hierarchies of kdops. IEEE Transactions on Visualization and Computer Graphics, 4 (1):21–36, Jan. 1998. Google Scholar
Digital Library
- A. Lagae and P. Dutré. Compact, fast and robust grids for ray tracing. Computer Graphics Forum, 27(4):1235–1244, 2008. Google Scholar
Digital Library
- C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha. Fast BVH Construction on GPUs. Computer Graphics Forum, 2009.Google Scholar
Cross Ref
- W.-J. Lee, Y. Shin, J. Lee, J.-W. Kim, J.-H. Nah, S. Jung, S. Lee, H.-S. Park, and T.-D. Han. Sgrt: A mobile gpu architecture for real-time ray tracing. In Proceedings of the 5th High-Performance Graphics Conference, HPG ’13, pages 109–119, New York, NY, USA, 2013. Google Scholar
Digital Library
- ACM. ISBN 978-1-4503-2135-8.Google Scholar
- D. J. MacDonald and K. S. Booth. Heuristics for ray tracing using space subdivision. Vis. Comput., 6(3):153–166, May 1990. Google Scholar
Digital Library
- J. McCarthy. History of programming languages i. chapter History of LISP, pages 173–185. ACM, New York, NY, USA, 1981. ISBN 0-12-745040-8. Google Scholar
Digital Library
- M. McCool, S. Du, T. Tiberiu, P. Bryan, and C. K. Moule. Shader algebra. ACM Transactions on Graphics, pages 787–795, 2004. Google Scholar
Digital Library
- R. Membarth, P. Slusallek, M. Köster, R. Leißa, and S. Hack. Highperformance domain-specific languages for gpu computing. GPU Technology Conference (GTC), March 2014.Google Scholar
- R. Membarth, O. Reiche, F. Hannig, J. Teich, M. Körner, and W. Eckert. HIPAcc: A domain-specific language and compiler for image processing. IEEE Transactions on Parallel and Distributed Systems, PP(99): 1–14, 2015.Google Scholar
- T. Möller and B. Trumbore. Fast, minimum storage ray-triangle intersection. J. Graph. Tools, 2(1):21–28, Oct. 1997. Google Scholar
Digital Library
- J.-H. Nah and D. Manocha. SATO: Surface Area Traversal Order for Shadow Ray Tracing. Computer Graphics Forum, 2012.Google Scholar
- J.-H. Nah, H.-J. Kwon, D.-S. Kim, C.-H. Jeong, J. Park, T.-D. Han, D. Manocha, and W.-C. Park. Raycore: A ray-tracing hardware architecture for mobile devices. ACM Trans. Graph., 33(5):162:1– 162:15, Sept. 2014. Google Scholar
Digital Library
- C. Peters and R. Klein. Moment shadow mapping. In Proceedings of the 19th Symposium on Interactive 3D Graphics and Games, i3D ’15, pages 7–14, New York, NY, USA, 2015. ACM. ISBN 978-1-4503- 3392-4. Google Scholar
Digital Library
- S. Popov, J. Guenther, H.-P. Seidel, and P. Slusallek. Stackless KD-Tree Traversal for High Performance GPU Ray Tracing. Computer Graphics Forum, 2007.Google Scholar
Cross Ref
- C. Prehofer. Feature-oriented programming: A fresh look at objects. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP ’97), Lecture Notes in Computer Science, pages 419–443. Springer-Verlag, June 1997.Google Scholar
- J. Ragan-Kelley, C. Barnes, A. Adams, S. Paris, F. Durand, and S. Amarasinghe. Halide: A language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 519–530, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2014-6. Google Scholar
Digital Library
- T. Rompf and M. Odersky. Lightweight modular staging: A pragmatic approach to runtime code generation and compiled dsls. In Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE ’10, pages 127–136, New York, NY, USA, 2010. ACM. ISBN 978-1-4503-0154-1. Google Scholar
Digital Library
- J. Schmittler, I. Wald, and P. Slusallek. Saarcor: A hardware architecture for ray tracing. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, HWWS ’02, pages 27–36, Aire-la-Ville, Switzerland, Switzerland, 2002. Eurographics Association. Google Scholar
Digital Library
- T. W. Sederberg and T. Nishita. Curve Intersection using Bezier Clipping. Computer-Aided Design, 22(9):538–549, 1990. Google Scholar
Digital Library
- L. Seiler, D. Carmean, E. Sprangle, T. Forsyth, M. Abrash, P. Dubey, S. Junkins, A. Lake, J. Sugerman, R. Cavin, R. Espasa, E. Grochowski, T. Juan, and P. Hanrahan. Larrabee: A many-core x86 architecture for visual computing. In ACM SIGGRAPH 2008 Papers, SIGGRAPH ’08, pages 18:1–18:15, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- K. Selgrad, A. Lier, M. Wittmann, D. Lohmann, and M. Stamminger. Defmacro for C: Lightweight, ad hoc code generation. In Proceedings of ELS 2014 7rd European Lisp Symposium, pages 80–87, 2014.Google Scholar
- N. Siegmund, S. Kolesnikov, C. Kastner, S. Apel, D. Batory, M. Rosenmuller, and G. Saake. Predicting performance via automated featureinteraction detection. In Proceedings of the 34nd International Conference on Software Engineering (ICSE ’12), pages 167–177, Washington, DC, USA, June 2012. IEEE Computer Society Press. Google Scholar
Digital Library
- N. Siegmund, M. Rosenmüller, M. Kuhlemann, C. Kästner, S. Apel, and G. Saake. SPL Conqueror: Toward optimization of non-functional properties in software product lines. Software Quality Journal, 20(3-4): 487–517, 2012. Google Scholar
Digital Library
- P. Slusallek and I. Georgiev. Rtfact: Generic concepts for flexible and high performance ray tracing. In R. J. Trew, editor, Proceedings of the IEEE / EG Symposium on Interactive Ray Tracing 2008, pages 115–122, RT08 Reception Warehouse Grill 4499 Admiralty Way Marina del Rey, CA 90292, 2008. IEEE Computer Society, Eurographics Association, IEEE.Google Scholar
- M. Stich, H. Friedrich, and A. Dietrich. Spatial splits in bounding volume hierarchies. In Proceedings of the Conference on High Performance Graphics 2009, HPG ’09, pages 7–13, New York, NY, USA, 2009. ACM. Google Scholar
Digital Library
- W. Taha. A gentle introduction to multi-stage programming. In Domainspecific Program Generation, LNCS, pages 30–50. Springer-Verlag, 2004.Google Scholar
- T. Veldhuizen. Template metaprograms. C++ Report, May 1995.Google Scholar
- C. Wächter and A. Keller. Instant ray tracing: The bounding interval hierarchy. In Proceedings of the 17th Eurographics Conference on Rendering Techniques, EGSR ’06, pages 139–149, Aire-la-Ville, Switzerland, Switzerland, 2006. Eurographics Association. ISBN 3- 905673-35-5. Google Scholar
Digital Library
- I. Wald and V. Havran. On building fast kd-trees for ray tracing, and on doing that in O(N log N). In Proceedings of IEEE Symposium on Interactive Ray Tracing 2006, pages 61–69, Sept. 2006.Google Scholar
Cross Ref
- I. Wald and P. Slusallek. State of the art in interactive ray tracing. State of the Art Reports, EUROGRAPHICS, 2001:21–42, 2001.Google Scholar
- I. Wald, P. Slusallek, C. Benthin, and M. Wagner. Interactive rendering with coherent ray tracing. In Computer Graphics Forum, pages 153– 164, 2001.Google Scholar
Digital Library
- I. Wald, C. Benthin, and S. Boulos. Getting rid of packets - efficient simd single-ray traversal using multi-branching bvhs, 2008.Google Scholar
Cross Ref
- I. Wald, S. Woop, C. Benthin, G. S. Johnson, and M. Ernst. Embree: A kernel framework for efficient cpu ray tracing. ACM Trans. Graph., 33 (4):143:1–143:8, July 2014. Google Scholar
Digital Library
Index Terms
Lightweight, generative variant exploration for high-performance graphics Applications
Recommendations
Lightweight, generative variant exploration for high-performance graphics Applications
GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesRendering performance is an everlasting goal of computer graphics and significant driver for advances in both, hardware architecture and algorithms. Thereby, it has become possible to apply advanced computer graphics technology even in low-cost ...
Lightweight and Generative Components 2: Binary-Level Components
SAIG '00: Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program GenerationMost software component technologies fail to account for lightweight components (those for which a function call is too inefficient or semantically inappropriate) or generative components (those in which the component embodies a method of constructing ...
iCoLa: A Compositional Meta-language with Support for Incremental Language Development
SLE 2022: Proceedings of the 15th ACM SIGPLAN International Conference on Software Language EngineeringProgramming languages providing high-level abstractions can increase programmers’ productivity and program safety. Language-oriented programming is a paradigm in which domain-specific languages are developed to solve problems within specific domains ...






Comments