Ray Tracing on the Cell Processor

Over the last three decades, higher CPU performance has been achieved almost exclusively by raising the CPU's clock rate. Today, the resulting power consumption and heat dissipation threaten to end this trend, and CPU designers are looking for alternative ways of providing more compute power. In particular, they are looking towards three concepts: a streaming compute model, vector-like SIMD units, and multi-core architectures. One particular example of such an architecture is the cell broadband engine architecture (CBEA), a multi-core processor that offers a raw compute power of up to 200 GFlops per 3.2 GHz chip. The cell bears a huge potential for compute-intensive applications like ray tracing, but also requires addressing the challenges caused by this processor's unconventional architecture. In this paper, we describe an implementation of realtime ray tracing on a cell. Using a combination of low-level optimized kernel routines, a streaming software architecture, explicit caching, and a virtual software-hyperthreading approach to hide DMA latencies, we achieve for a single cell a pure ray tracing performance of nearly one order of magnitude over that achieved by a commodity CPU

[1]  Turner Whitted,et al.  A 3-dimensional representation for fast rendering of complex scenes , 1980, SIGGRAPH '80.

[2]  Ingo Wald,et al.  Ray tracing deformable scenes using dynamic bounding volume hierarchies , 2007, TOGS.

[3]  John Amanatides,et al.  A Fast Voxel Traversal Algorithm for Ray Tracing , 1987, Eurographics.

[4]  Pat Hanrahan,et al.  Ray tracing on a connection machine , 1988, ICS '88.

[5]  Samuel Williams,et al.  The potential of the cell processor for scientific computing , 2005, CF '06.

[6]  Peter-Pike J. Sloan,et al.  Interactive ray tracing , 1999, SI3D.

[7]  P. Shirley,et al.  Interactive Distribution Ray Tracing , 2006 .

[8]  Ingo Wald,et al.  Ray tracing animated scenes using coherent grid traversal , 2006, ACM Trans. Graph..

[9]  Kellogg S. Booth,et al.  Report from the chair , 1986 .

[10]  WhittedTurner,et al.  A 3-dimensional representation for fast rendering of complex scenes , 1980 .

[11]  B. Flachs,et al.  A streaming processing unit for a CELL processor , 2005, ISSCC. 2005 IEEE International Digest of Technical Papers. Solid-State Circuits Conference, 2005..

[12]  Michael J. Muuss Towards real-time ray-tracing of combinatorial solid geometric models , 1995 .

[13]  Alexander Reshetov,et al.  Multi-level ray tracing algorithm , 2005, ACM Trans. Graph..

[14]  Markus Wagner,et al.  Interactive Rendering with Coherent Ray Tracing , 2001, Comput. Graph. Forum.

[15]  P. Slusallek,et al.  RPU: a programmable ray processing unit for realtime ray tracing , 2005, SIGGRAPH '05.

[16]  William J. Dally,et al.  Imagine: Media Processing with Streams , 2001, IEEE Micro.

[17]  Philipp Slusallek,et al.  SaarCOR: a hardware architecture for ray tracing , 2002, HWWS '02.

[18]  Philipp Slusallek,et al.  Realtime ray tracing of dynamic scenes on an FPGA chip , 2004, Graphics Hardware.

[19]  Carsten Benthin,et al.  Realtime ray tracing on current CPU architectures , 2006 .

[20]  Ingo Wald,et al.  Realtime ray tracing and interactive global illumination , 2004, Ausgezeichnete Informatikdissertationen.

[21]  Frederik W. Jansen,et al.  Data structures for ray tracing , 1986 .

[22]  Erik Reinhard,et al.  Practical Parallel Rendering , 2002, Practical Parallel Rendering.

[23]  Markus Wagner,et al.  Interactive Distributed Ray Tracing of Highly Complex Models , 2001, Rendering Techniques.

[24]  Pat Hanrahan,et al.  Rendering complex scenes with memory-coherent ray tracing , 1997, SIGGRAPH.