Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3105762.3105768acmconferencesArticle/Chapter ViewAbstractPublication PageshpgConference Proceedingsconference-collections
research-article

Vectorized production path tracing

Published: 28 July 2017 Publication History

Abstract

This paper presents MoonRay, a high performance production rendering architecture using Monte Carlo path tracing developed at DreamWorks Animation. MoonRay is the first production path tracer, to our knowledge, designed to fully leverage Single Instruction/Multiple Data (SIMD) vector units throughout. To achieve high SIMD efficiency, we employ Embree for tracing rays and vectorize the remaining compute intensive components of the renderer: the integrator, the shading system and shaders, and the texturing engine. Queuing is used to help keep all vector lanes full and improve data coherency. We use the ISPC programming language [Intel 2011; Pharr and Mark 2012] to achieve improved performance across SSE, AVX/AVX2 and AVX512 instruction sets. Our system includes two functionally equivalent uni-directional CPU path tracing implementations: a C++ scalar depth-first version and an ISPC vectorized breadth-first wavefront version. Using side by side performance comparisons on complex production scenes and assets we show our vectorized architecture, running on AVX2, delivers between a 1.3× to 2.3× speed-up in overall render time, and up to 3×, 6×, and 4×, speed-ups within the integration, shading, and texturing components, respectively.

References

[1]
Mike Acton. 2014. Data-Oriented Design and C++. (2014). https://www.youtube.com/watch?v=rX0ItVEVjHc.
[2]
Attila T. Áfra, Carsten Benthin, Ingo Wald, and Jacob Munkberg. 2016. Local Shading Coherence Extraction for SIMD-efficient Path Tracing on CPUs. In Proceedings of High Performance Graphics (HPG '16). 119--128.
[3]
Timo Aila and Tero Karras. 2010. Architecture Considerations for Tracing Incoherent Rays. In Proceedings of the Conference on High Performance Graphics (HPG '10). 113--122.
[4]
Carsten Benthin, Ingo Wald, Sven Woop, Manfred Ernst, and William R. Mark. 2012. Combining Single and Packet-Ray Tracing for Arbitrary Ray Distributions on the Intel MIC Architecture. IEEE Transactions on Visualization and Computer Graphics (2012), 1438--1448.
[5]
Robert L. Cook, Loren Carpenter, and Edwin Catmull. 1987. The Reyes Image Rendering Architecture. In Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '87). 95--102.
[6]
Christian Eisenacher, Gregory Nichols, Andrew Selle, and Brent Burley. 2013. Sorted Deferred Shading for Production Path Tracing. In Proceedings of the Eurographics Symposium on Rendering (EGSR '13). 125--132.
[7]
Manfred Ernst and Gunther Greiner. 2008. Multi Bounding Volume Hierarchies. In IEEE Symposium on Interactive Ray Tracing (RT '08).
[8]
Kirill Garanzha and Charles Loop. 2010. Fast Ray Sorting and Breadth-First Packet Traversal for GPU Ray Tracing. Computer Graphics Forum (2010), 289--298.
[9]
Larry Gritz. 2007. Open Image I/O. https://github.com/OpenImageIO/oiio/.
[10]
Jim Handy. 1998. The Cache Memory Book. Morgan Kaufmann. https://www.elsevier.com/books/cache-memory-book-the/handy/978-0-08-051878-7.
[11]
P Hanrahan. 1986. Using Caching and Breadth-first Search to Speed Up Ray-tracing. In Proceedings on Graphics Interface '86/Vision Interface '86. 56--61.
[12]
Jared Hoberock, Victor Lu, Yuntao Jia, and John C. Hart. 2009. Stream Compaction for Deferred Shading. In Proceedings of the Conference on High Performance Graphics 2009 (HPG '09). 173--180.
[13]
Sony Imageworks. 2017. Alembic. (2017). http://www.alembic.io/.
[14]
Intel. 2010. Threading Building Blocks. https://www.threadingbuildingblocks.org/.
[15]
Intel. 2011. Intel SPMD Program Compiler. https://ispc.github.io/.
[16]
James T. Kajiya. 1986. The Rendering Equation. In Proceedings of the 13th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '86). 143--150.
[17]
Alexander Keller, Carsten Wächter, Matthias Raab, Daniel Seibert, Dietger van Antwerpen, Johann Korndörfer, and Lutz Kettner. 2017. The Iray Light Transport Simulation and Rendering System. CoRR abs/1705.01263 (2017). http://arxiv.org/abs/1705.01263
[18]
Janne Kontkanen, Eric Tabellion, and Ryan S. Overbeck. 2011. Coherent Out-of-core Point-based Global Illumination. In Proceedings of the Twenty-second Eurographics Conference on Rendering (EGSR '11). 1353--1360.
[19]
Samuli Laine, Tero Karras, and Timo Aila. 2013. Megakernels Considered Harmful: Wavefront Path Tracing on GPUs. In Proceedings of the 5th High-Performance Graphics Conference (HPG '13). 137--143.
[20]
Koji Nakamaru and Yoshio Ohno. 2002. Ray Tracing for Curve Primitives. In Proceedings of Winter School of Computer Graphics (WSCG).
[21]
Jacopo Pantaleoni, Luca Fascione, Martin Hill, and Timo Aila. 2010. PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes. In ACM SIGGRAPH 2010 Papers (SIGGRAPH '10). 37:1--37:10.
[22]
Steven G. Parker, James Bigler, Andreas Dietrich, Heiko Friedrich, Jared Hoberock, David Luebke, David McAllister, Morgan McGuire, Keith Morley, Austin Robison, and Martin Stich. 2010. OptiX: A General Purpose Ray Tracing Engine. In ACM SIGGRAPH 2010 Papers (SIGGRAPH '10). 66:1--66:13.
[23]
Matt Pharr, Wenzel Jakob, and Greg Humphreys. 2016. Physically Based Rendering, 3rd ed. Morgan Kaufmann. http://www.pbrt.org/.
[24]
Matt Pharr, Craig Kolb, Reid Gershbein, and Pat Hanrahan. 1997. Rendering Complex Scenes with Memory-coherent Ray Tracing. In Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '97). 101--108.
[25]
M. Pharr and W. R. Mark. 2012. ispc: A SPMD Compiler for High-Performance CPU Programming. In 2012 Innovative Parallel Computing (InPar). 1--13.
[26]
Mike Seymour. 2014. UDIM UV mapping. (2014). https://www.fxguide.com/featured/udim-uv-mapping/.
[27]
John A. Tsakok. 2009. Faster Incoherent Rays: Multi-BVH Ray Stream Tracing. In Proceedings of the Conference on High Performance Graphics 2009 (HPG '09). 151--158.
[28]
Eric Veach and Leonidas J. Guibas. 1995. Optimally Combining Sampling Techniques for Monte Carlo Rendering. In Proceedings of the 22Nd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '95). 419--428.
[29]
Jiří Vorba and Jaroslav Křivánek. 2016. Adjoint-Driven Russian Roulette and Splitting in Light Transport Simulation. ACM Trans. Graph. (2016), 1--11.
[30]
Ingo Wald. 2007. On Fast Construction of SAH-based Bounding Volume Hierarchies. In Proceedings of the 2007 IEEE Symposium on Interactive Ray Tracing (RT '07). 33--40.
[31]
Ingo Wald, Carsten Benthin, and Solomon Boulos. 2008. Getting rid of packets - Efficient SIMD single-ray traversal using multi-branching BVHs. In IEEE Symposium on Interactive Ray Tracing (RT '08).
[32]
Ingo Wald, Sven Woop, Carsten Benthin, Gregory S. Johnson, and Manfred Ernst. 2014. Embree: A Kernel Framework for Efficient CPU Ray Tracing. ACM Trans. Graph. (2014), 143:1--143:8.
[33]
Sven Woop, Carsten Benthin, Ingo Wald, Gregory S. Johnson, and Eric Tabellion. 2014. Exploiting Local Orientation Similarity for Efficient Ray Traversal of Hair and Fur. In Proceedings of High Performance Graphics (HPG '14). 41--49.

Cited By

View all
  • (2024)Spear: Across the Streaming Multiprocessors: Porting a Production Renderer to the GPUProceedings of the 2024 Digital Production Symposium10.1145/3665320.3670988(1-9)Online publication date: 24-Jul-2024
  • (2024)Filtering After Shading With Stochastic Texture FilteringProceedings of the ACM on Computer Graphics and Interactive Techniques10.1145/36512937:1(1-20)Online publication date: 13-May-2024
  • (2023)PARS - Path recycling and sorting for efficient cloud tomographyIntelligent Computing10.34133/icomputing.00072Online publication date: 8-Mar-2023
  • Show More Cited By

Index Terms

  1. Vectorized production path tracing

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    HPG '17: Proceedings of High Performance Graphics
    July 2017
    180 pages
    ISBN:9781450351010
    DOI:10.1145/3105762
    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].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 28 July 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Monte Carlo
    2. computer graphics
    3. path tracing
    4. production rendering
    5. vectorization

    Qualifiers

    • Research-article

    Conference

    HPG '17
    Sponsor:
    HPG '17: High-Performance Graphics
    July 28 - 30, 2017
    California, Los Angeles

    Acceptance Rates

    Overall Acceptance Rate 15 of 44 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)40
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 10 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Spear: Across the Streaming Multiprocessors: Porting a Production Renderer to the GPUProceedings of the 2024 Digital Production Symposium10.1145/3665320.3670988(1-9)Online publication date: 24-Jul-2024
    • (2024)Filtering After Shading With Stochastic Texture FilteringProceedings of the ACM on Computer Graphics and Interactive Techniques10.1145/36512937:1(1-20)Online publication date: 13-May-2024
    • (2023)PARS - Path recycling and sorting for efficient cloud tomographyIntelligent Computing10.34133/icomputing.00072Online publication date: 8-Mar-2023
    • (2022)LuisaRenderACM Transactions on Graphics10.1145/3550454.355546341:6(1-19)Online publication date: 30-Nov-2022
    • (2022)DR.JITACM Transactions on Graphics10.1145/3528223.353009941:4(1-19)Online publication date: 22-Jul-2022
    • (2021)Real Time Cluster Path TracingSIGGRAPH Asia 2021 Technical Communications10.1145/3478512.3488605(1-4)Online publication date: 14-Dec-2021
    • (2019)TaichiACM Transactions on Graphics10.1145/3355089.335650638:6(1-16)Online publication date: 8-Nov-2019
    • (2019)Mitsuba 2ACM Transactions on Graphics10.1145/3355089.335649838:6(1-17)Online publication date: 8-Nov-2019
    • (2019)Distributed multi-context interactive renderingProceedings of the 2019 Digital Production Symposium10.1145/3329715.3338878(1-3)Online publication date: 27-Jul-2019
    • (2018)Phantom Ray-Hair IntersectorProceedings of the ACM on Computer Graphics and Interactive Techniques10.1145/32333071:2(1-22)Online publication date: 24-Aug-2018
    • Show More Cited By

    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