Data Reuse in Real-Time Rendering Systems
As the programmability of specialized graphics hardware has increased so too has the complexity and variety of user-specified programs (shaders) they are designed to execute. Modern interactive rendering systems incorporate hundreds to thousands of individual shaders in a single scene, each one containing hundreds to thousands of individual instructions. At the same time, rendering systems are unique in that the application developer may be willing to tolerate slightly incorrect results in exchange for significant performance gains. For example, the fact that a few hundred pixels (out of millions) deviate from their ideal values by ~5% might be perfectly acceptable if the program runs twice as fast.
This research focuses on developing general and automated tools for reducing the costs associated with executing pixel shaders at some controllable loss in visual detail. Specifically, we are investigating mechanisms for caching and reusing intermediate values generated inside a shader over consecutive frames. The key research challenges are overcoming the constraints imposed by the underlying hardware and providing tools that help a developer automate the task of allocating this new resource. Our efforts so far have focused on demonstrating that cache-based shader optimization provides significant performance improvements for many real-world applications. Future work will investigate new programming language constructs, hardware-level support, and statistical models of code execution that will enable more sophisticated optimizations and support on-line allocation. This research was recently acknowledged and is partially funded by an NVIDIA Professor Partnership Award.
Recent Publications
- Amortized Supersampling, Lei Yang, Diego Nehab, Pedro V. Sander, Pitchaya Sitthi-amorn, Jason Lawrence, Hugues Hoppe, ACM Transactions on Graphics (Proc. SIGGRAPH Asia), 28(5), December 2009.
- Automated Reprojection-Based Pixel Shader Optimization, Pitchaya Sitthi-amorn, Jason Lawrence, Lei Yang, Pedro V. Sander, Diego Nehab, and Jiahe Xi, ACM Transactions on Graphics (Proc. SIGGRAPH Asia), 27(5), December 2008.
- Geometry-Aware Framebuffer Level of Detail, Lei Yang, Pedro V. Sander, and Jason Lawrence, Eurographics Symposium on Rendering, June 2008.
- An Improved Shading Cache for Modern GPUs, Pitchaya Sitthi-amorn, Jason Lawrence, Lei Yang, Pedro V. Sander, and Diego Nehab, Graphics Hardware, June 2008.
- Accelerating Real-Time Shading with Reverse Reprojection Caching, Diego Nehab, Pedro V. Sander, Jason Lawrence, Natayla Tatarchuk, and John R. Isidoro, Graphics Hardware, June 2007.