Volume Rendering Via Data-Parallel Primitives

Supercomputing designs have recently evolved to include architectures beyond the standard CPU. In response, visualization software must be developed in a manner that obviates the need for porting all visualization algorithms to all architectures. Recent research results indicate that building visualization software on a foundation of data-parallel primitives can meet this goal, providing portability over many architectures, and doing it in a performant way. With this work, we introduce an unstructured data volume rendering algorithm which is composed entirely of data-parallel primitives. We compare the algorithm to community standards, and show that the performance we achieve is similar. That is, although our algorithm is hardware-agnostic, we demonstrate that our performance on GPUs is comparable to code that was written for and optimized for the GPU, and our performance on CPUs is comparable to code written for and optimized for the CPU. The main contribution of this work is in realizing the benefits of data-parallel primitives --- portable performance, longevity, and programmability --- for volume rendering. A secondary contribution is in providing further evidence of the merits of the data-parallel primitives approach itself.

[1]  James P. Ahrens,et al.  PISTON: A Portable Cross-Platform Framework for Data-Parallel Visualization Operators , 2012, EGPGV@Eurographics.

[2]  Robert Sisneros,et al.  EAVL: The Extreme-scale Analysis and Visualization Library , 2012, EGPGV@Eurographics.

[3]  Kwan-Liu Ma,et al.  A Scalable, Hybrid Scheme for Volume Rendering Massive Data Sets y , 2022 .

[4]  Pat Hanrahan,et al.  Volume Rendering , 2020, Definitions.

[5]  E. Wes Bethel,et al.  MPI-hybrid Parallelism for Volume Rendering on Large, Multi-core Systems , 2010, EGPGV@Eurographics.

[6]  Steven P. Callahan,et al.  A Survey of GPU-Based Volume Rendering of Unstructured Grids , 2005, RITA.

[7]  E. Wes Bethel,et al.  Hybrid Parallelism for Volume Rendering on Large-, Multi-, and Many-Core Systems , 2012, IEEE Transactions on Visualization and Computer Graphics.

[8]  P CallahanSteven,et al.  Hardware-Assisted Visibility Sorting for Unstructured Volume Rendering , 2005 .

[9]  M. Ament,et al.  Volume Rendering , 2015 .

[10]  Kenneth Moreland,et al.  Tetrahedral projection using vertex shaders , 2002, Symposium on Volume Visualization and Graphics, 2002. Proceedings. IEEE / ACM SIGGRAPH.

[11]  Nathan Bell,et al.  Thrust: A Productivity-Oriented Library for CUDA , 2012 .

[12]  Kwan-Liu Ma,et al.  Multi-GPU volume rendering using MapReduce , 2010, HPDC '10.

[13]  Nathan Bell,et al.  Thrust : A Productivity-Oriented Library for CUDA 26 , 2011 .

[14]  G. Bryan,et al.  Introducing Enzo, an AMR Cosmology Application , 2004, astro-ph/0403044.

[15]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[16]  Marc Levoy,et al.  Display of surfaces from volume data , 1988, IEEE Computer Graphics and Applications.

[17]  Kwan-Liu Ma,et al.  Dax Toolkit: A proposed framework for data analysis and visualization at Extreme Scale , 2011, 2011 IEEE Symposium on Large Data Analysis and Visualization.

[18]  William E. Lorensen,et al.  The design and implementation of an object-oriented toolkit for 3D graphics and visualization , 1996, Proceedings of Seventh Annual IEEE Visualization '96.

[19]  Cláudio T. Silva,et al.  Simple, Fast, and Robust Ray Casting of Irregular Grids , 1997, Scientific Visualization Conference (dagstuhl '97).

[20]  Kelly P. Gaither,et al.  RBF Volume Ray Casting on Multicore and Manycore CPUs , 2014, Comput. Graph. Forum.

[21]  Ricardo Farias,et al.  ZSWEEP: An Efficient and Exact Projection Algorithm for Unstructured Volume Rendering , 2000, 2000 IEEE Symposium on Volume Visualization (VV 2000).

[22]  Hank Childs,et al.  VisIt: An End-User Tool for Visualizing and Analyzing Very Large Data , 2011 .

[23]  Cláudio T. Silva,et al.  Hardware-assisted visibility sorting for unstructured volume rendering , 2005, IEEE Transactions on Visualization and Computer Graphics.

[24]  Hank Childs,et al.  Ray tracing within a data parallel framework , 2015, 2015 IEEE Pacific Visualization Symposium (PacificVis).

[25]  P. Shirley,et al.  A polygonal approximation to direct scalar volume rendering , 1990, VVS.

[26]  M. Pharr,et al.  ispc: A SPMD compiler for high-performance CPU programming , 2012, 2012 Innovative Parallel Computing (InPar).