Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Lightweight, generative variant exploration for high-performance graphics Applications

Published: 26 October 2015 Publication History

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

Recommendations

Comments

Information & Contributors

Information

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2015
Published in SIGPLAN Volume 51, Issue 3

Check for updates

Author Tags

  1. exploratory programming
  2. general purpose code generation
  3. prototyping
  4. ray tracing

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media