Memory Management of Large Data Sets in Volume Visualization Systems

Significant improvements in hardware components result in the potential to process and render large volumes with complex features and interactions. This has challenged system developers to manage several gigabytes of memory at interactive rates. Ray casting a 1024 volume with 2 bytes/voxel in 30Hz requires memory bandwidth of 60GB/sec. Some of the volumetric system design issues are: time to market, scalability, component costs and physical layout. Some parallel processing strategies include distributed systems, algorithmic optimizations, levying graphics accelerator hardware, and designing volumetric accelerator hardware. Distributed systems use relatively cheap off the shelf computers networked together. With networking hardware speeds exceeding 1Gb/sec it has become feasible to distribute very large data sets among several PCs to manipulate and render in real time. Graphics accelerator texture mapping is used for the compositing phase of many algorithms, but it limits the quality achievable. Some algorithmic improvements can be implemented by the operating system or in hardware. SIMD arrays are appropriate for volume designs because most operations are repeated on vast amounts of data. In any of these solutions, memory management is critical. A memory bandwidth bottleneck is when the processors stall frequently to wait for memory fetches. Studies indicate that dividing the volume into sub-volumes that are distributed among the processing elements reduces view dependence. Inherent with this approach is the need for balanced load distribution. Multi level caching allows implementation of smaller L1 caches. In this paper I describe the memory bandwidth bottleneck problem and some of the decisions that are made when designing a volume rendering architecture. In addition I give an overview of some of the most well-known volume rendering algorithms and well established optimizations, and a description of some previous work on volume architectures, work to date on the Cube-5 architectures and the potential to improve cache scheduling for ray tracing based on the on ray dependency graph. Topics of Discussion

[1]  David Baraff,et al.  Physician's Workstation with Real-Time Performance , 1985, IEEE Computer Graphics and Applications.

[2]  Arie E. Kaufman,et al.  Memory and processing architecture for 3D voxel-based imagery , 1988, IEEE Computer Graphics and Applications.

[3]  Günter Knittel,et al.  VERVE: Voxel Engine for Real-time Visualization and Examination , 1993, Comput. Graph. Forum.

[4]  Brian Cabral,et al.  Accelerated volume rendering and tomographic reconstruction using texture mapping hardware , 1994, VVS '94.

[5]  M. Levoy,et al.  Fast volume rendering using a shear-warp factorization of the viewing transformation , 1994, SIGGRAPH.

[6]  Reinhard Männer,et al.  VIRIM: A massively parallel processor for real-time volume visualization in medicine , 1994, Comput. Graph..

[7]  Hanspeter Pfister,et al.  Cube-4-a scalable architecture for real-time volume rendering , 1996, Proceedings of 1996 Symposium on Volume Visualization.

[8]  Arie E. Kaufman,et al.  PVR: high-performance volume rendering , 1996 .

[9]  Allen Van Gelder,et al.  Direct volume rendering with shading via three-dimensional textures , 1996, Proceedings of 1996 Symposium on Volume Visualization.

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

[11]  Wolfgang Straßer,et al.  Implementations of cube-4 on the teramac custom computing machine , 1997, Comput. Graph..

[12]  Barthold B. A. Lichtenbelt Design of a high performance volume visualization system , 1997, HWWS '97.

[13]  Neil McKenzie,et al.  EM-Cube: an architecture for low-cost real-time volume rendering , 1997, HWWS '97.

[14]  Reinhard Männer,et al.  Latency- and hazard-free volume memory architecture for direct volume rendering , 1997, Comput. Graph..

[15]  Wolfgang Straßer,et al.  VIZARD—visualization accelerator for realtime display , 1997, HWWS '97.

[16]  Arie E. Kaufman,et al.  A ray-slice-sweep volume rendering engine , 1997, HWWS '97.

[17]  Anoop Gupta,et al.  The Design and Analysis of a Cache Architecture for Texture Mapping , 1997, ISCA.

[18]  M. Cox,et al.  Multi-level texture caching for 3D graphics hardware , 1998, Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235).

[19]  Bengt-Olaf Schneider,et al.  Siggraph/Eurographics Workshop on Graphics Hardware , 1998 .

[20]  Stephen Taylor,et al.  Ray casting on shared-memory architectures: memory-hierarchy considerations in volume rendering , 1998, IEEE Concurr..

[21]  Arie E. Kaufman,et al.  High-quality volume rendering using texture mapping hardware , 1998, Workshop on Graphics Hardware.

[22]  Sarah F. Frisken,et al.  EM-Cube: an architecture for low-cost real-time volume rendering , 1997, HWWS '97.

[23]  Arie E. Kaufman,et al.  PAVLOV: a programmable architecture for volume processing , 1998, Workshop on Graphics Hardware.

[24]  M. Meißner,et al.  Vizard II, a PCI-card for real-time volume rendering , 1998, SIGGRAPH 1998.

[25]  Michael Shantz,et al.  Multi-level texture caching for 3D graphics hardware , 1998, Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235).

[26]  A. Kaufman,et al.  Adaptive perspective ray casting , 1998, IEEE Symposium on Volume Visualization (Cat. No.989EX300).

[27]  Michael C. Doggett,et al.  A low-cost memory architecture for PCI-based interactive ray casting , 1999, Workshop on Graphics Hardware.

[28]  Hanspeter Pfister,et al.  The VolumePro real-time ray-casting system , 1999, SIGGRAPH.

[29]  E. Reinhard,et al.  Hybrid scheduling for parallel rendering using coherent ray tasks , 1999, Proceedings 1999 IEEE Parallel Visualization and Graphics Symposium (Cat. No.99EX381).

[30]  Arie E. Kaufman,et al.  Hybrid volume and polygon rendering with cube hardware , 1999, Workshop on Graphics Hardware.

[31]  Homan Igehy,et al.  Parallel texture caching , 1999, Workshop on Graphics Hardware.

[32]  Arie E. Kaufman,et al.  Mixing translucent polygons with volumes , 1999, Proceedings Visualization '99 (Cat. No.99CB37067).

[33]  Deborah Silver,et al.  The RACE II engine for real-time volume rendering , 2000, Workshop on Graphics Hardware.

[34]  Voicu Popescu,et al.  The WarpEngine: an architecture for the post-polygonal age , 2000, SIGGRAPH.

[35]  Jürgen Hesser,et al.  Solving the Hazard Problem for Algorithmically Optimized Real-Time Volume Rendering , 2000 .

[36]  William J. Dally,et al.  Smart Memories: a modular reconfigurable architecture , 2000, ISCA '00.

[37]  Kurt Akeley,et al.  RealityEngine graphics , 2000 .

[38]  Arie E. Kaufman,et al.  GI-cube: an architecture for volumetric global illumination and rendering , 2000, Workshop on Graphics Hardware.

[39]  Arie E. Kaufman,et al.  Real-time volume rendering , 2000, Int. J. Imaging Syst. Technol..

[40]  Michael A. Bender,et al.  Cache-oblivious B-trees , 2000, Proceedings 41st Annual Symposium on Foundations of Computer Science.