skip to main content
research-article

Lightweight, generative variant exploration for high-performance graphics Applications

Published:26 October 2015Publication History
Skip Abstract Section

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.

References

  1. T. Aila and S. Laine. Understanding the efficiency of ray traversal on gpus. In Proc. High-Performance Graphics 2009, pages 145–149, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. J. Amanatides and A. Woo. A fast voxel traversal algorithm for ray tracing. In In Eurographics ’87, pages 3–10, 1987.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarCross RefCross Ref
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Barringer and T. Akenine-Möller. Dynamic ray stream traversal. ACM Trans. Graph., 33(4):151:1–151:9, July 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. K. Czarnecki and U. W. Eisenecker. Generative Programming. Methods, Tools and Applications. Addison-Wesley, May 2000. ISBN 0-20-13097- 77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. P. Dutre, K. Bala, P. Bekaert, and P. Shirley. Advanced Global Illumination. AK Peters Ltd, 2006. Google ScholarGoogle ScholarCross RefCross Ref
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Ernst and G. Greiner. Multi Bounding Volume Hierarchies. In IEEE Symposium on Interactive Ray Tracing, pages 35–40, Aug. 2008.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Fredriksson. Amplifying C. http://voodooslide.blogspot.de/2010/01/amplifying-c.html, 2010.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. S. Glassner, editor. An Introduction to Ray Tracing. Academic Press Ltd., London, UK, UK, 1989. ISBN 0-12-286160-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. G. Guennebaud, B. Jacob, et al. Eigen v3. http://eigen.tuxfamily.org, 2010.Google ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. V. Havran and J. Bittner. On improving kd-trees for ray shooting. Journal of WSCG, 10(1):209–216, February 2002.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Eurographics Association.Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. Lagae and P. Dutré. Compact, fast and robust grids for ray tracing. Computer Graphics Forum, 27(4):1235–1244, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha. Fast BVH Construction on GPUs. Computer Graphics Forum, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. ACM. ISBN 978-1-4503-2135-8.Google ScholarGoogle Scholar
  35. D. J. MacDonald and K. S. Booth. Heuristics for ray tracing using space subdivision. Vis. Comput., 6(3):153–166, May 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. McCool, S. Du, T. Tiberiu, P. Bryan, and C. K. Moule. Shader algebra. ACM Transactions on Graphics, pages 787–795, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle Scholar
  40. T. Möller and B. Trumbore. Fast, minimum storage ray-triangle intersection. J. Graph. Tools, 2(1):21–28, Oct. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. J.-H. Nah and D. Manocha. SATO: Surface Area Traversal Order for Shadow Ray Tracing. Computer Graphics Forum, 2012.Google ScholarGoogle Scholar
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarCross RefCross Ref
  45. 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 ScholarGoogle Scholar
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  49. T. W. Sederberg and T. Nishita. Curve Intersection using Bezier Clipping. Computer-Aided Design, 22(9):538–549, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle Scholar
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  53. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  54. 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 ScholarGoogle Scholar
  55. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  56. W. Taha. A gentle introduction to multi-stage programming. In Domainspecific Program Generation, LNCS, pages 30–50. Springer-Verlag, 2004.Google ScholarGoogle Scholar
  57. T. Veldhuizen. Template metaprograms. C++ Report, May 1995.Google ScholarGoogle Scholar
  58. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  59. 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 ScholarGoogle ScholarCross RefCross Ref
  60. I. Wald and P. Slusallek. State of the art in interactive ray tracing. State of the Art Reports, EUROGRAPHICS, 2001:21–42, 2001.Google ScholarGoogle Scholar
  61. I. Wald, P. Slusallek, C. Benthin, and M. Wagner. Interactive rendering with coherent ray tracing. In Computer Graphics Forum, pages 153– 164, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. I. Wald, C. Benthin, and S. Boulos. Getting rid of packets - efficient simd single-ray traversal using multi-branching bvhs, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  63. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lightweight, generative variant exploration for high-performance graphics Applications

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 51, Issue 3
              GPCE '15
              March 2016
              184 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2936314
              • Editor:
              • Andy Gill
              Issue’s Table of Contents
              • cover image ACM Conferences
                GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
                October 2015
                184 pages
                ISBN:9781450336871
                DOI:10.1145/2814204

              Copyright © 2015 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 26 October 2015

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!