Towards Utilizing GPUs in Information Visualization: A Model and Implementation of Image-Space Operations Bryan McDonnel Niklas Elmqvist
GPUVis A refinement of the traditional InfoVis pipeline A visualization application utilizing GPUs A visual programming environment
MOTIVATION GPUVis
The Rise of the GPU Early GPUs  [C. J. Thompson et al. 2002] Fixed-function processors Highly optimized, fixed rendering path Non-programmable Shaders  [P. Hanrahan, J. Lawson 1990] More flexibility Per-surface shading Modern GPUs  [C. J. Thompson et al. 2002] Innovation fueled by game development More transistors than a CPU 240+ stream processors Early S3 graphics card NVidia GTX 285 & 295
General Purpose GPU computing Exploit the GPU's programmability  [C. J. Thompson et al. 2002] Highly parallel and efficient computing Offload computation from the CPU Functional mismatch GPUs deal with graphics primitives Adaptive libraries  [I. Buck et al. 2004] NVidia's CUDA, ATI's Stream Computing SDK Make GPGPU programming more accessible
GPUs for Scientific Visualization Performance increases  [K. Engel et al. 2006] Real-time volumetric rendering Scout Data easily expressed as primitives 2D or 3D mapping Still problems Shader expertise Conceptual mismatch Scout: A Hardware-Accelerated System for Quantitatively Driven Visualization and Analysis – McCormick et al. 2004
GPUs for Information Visualization Few utilize the GPU's programmable pipeline Data stored as floating-point OpenGL textures  [J. Johansson et al. 2006] Use graphics hardware to improve rendering  [M. Florek, M. Novotný 2006] Usage is opportunistic Still no general approach Revealing structure in visualizations of dense 2D and 3D parallel coordinates – J. Johansson et al. 2006
METHOD GPUVis
Image-Space Visualization Operations (IVOs) Traditionally 3 stages Expose a final data image step Transform data sampled in screen space to colored pixels
IVO Model Define IVOs as functions operating on data tuples d = (d 1 , d 2 , …, d n ) M = {(s x , s y ), (l x , l y ), … } G = {u 1 , u 2 , …} p = (p R , p G , p B , p A ) ivo :: I = (d, M, G)    p
IVO Components IVO Components Color Mapping Color scales (1, 2, and even 3 dimensional) Glyph Rendering Bar chart Line graphs Filtering Discard tuples that fall outside a desired range Dynamic Queries Computation Statistical analysis Arithmetic operations
Composing IVOs
IMPLEMENTATION GPUVis
GPU Shader Programming Model Stream programming model  [A. Fournier and D. Fussell] Transform input streams to output streams Shaders (kernels) Kernel program invoked by a stream processor Called for each element in the input stream Executed independently of all other kernels Large number of parallel kernels provides extreme performance Kernel types Vertex – operates on a single 3D vertex in the stream Fragment (pixel) – invoked for  every  pixel  to be drawn Geometry – generate new primitives
Shaders as IVOs Per fragment data Data specific to the individual tuple Per layer data Data common among the entire set of tuples
Visualization Application Polar bar chart IVO Layers
Visualization Application Regular bar chart IVO Control the inputs to the IVO with drop down boxes
Visual IVO Editor Visually specify the shader pipeline Removes need for programming expertise Provides easy-to-use pre-defined functions
DEMO GPUVis
Results IVOs allow for more flexibility over display Visual IVO editor removes need for expertise Performance gains Frame rate comparison Visualization OpenGL GPUVis Scatter plot 69.5 77.5 Node-link 19.9 68.0 Treemap 89.8 99.8
Summary and Future Work Refinement of the InfoVis Pipeline Visualization Application utilizing GPUs Visual Programming Environment Future Plans Control flow Hierarchical design GLSL code optimization Transition to CUDA or OpenCL
Questions? [email_address] [email_address]

Towards Utilizing GPUs in Information Visualization

  • 1.
    Towards Utilizing GPUsin Information Visualization: A Model and Implementation of Image-Space Operations Bryan McDonnel Niklas Elmqvist
  • 2.
    GPUVis A refinementof the traditional InfoVis pipeline A visualization application utilizing GPUs A visual programming environment
  • 3.
  • 4.
    The Rise ofthe GPU Early GPUs [C. J. Thompson et al. 2002] Fixed-function processors Highly optimized, fixed rendering path Non-programmable Shaders [P. Hanrahan, J. Lawson 1990] More flexibility Per-surface shading Modern GPUs [C. J. Thompson et al. 2002] Innovation fueled by game development More transistors than a CPU 240+ stream processors Early S3 graphics card NVidia GTX 285 & 295
  • 5.
    General Purpose GPUcomputing Exploit the GPU's programmability [C. J. Thompson et al. 2002] Highly parallel and efficient computing Offload computation from the CPU Functional mismatch GPUs deal with graphics primitives Adaptive libraries [I. Buck et al. 2004] NVidia's CUDA, ATI's Stream Computing SDK Make GPGPU programming more accessible
  • 6.
    GPUs for ScientificVisualization Performance increases [K. Engel et al. 2006] Real-time volumetric rendering Scout Data easily expressed as primitives 2D or 3D mapping Still problems Shader expertise Conceptual mismatch Scout: A Hardware-Accelerated System for Quantitatively Driven Visualization and Analysis – McCormick et al. 2004
  • 7.
    GPUs for InformationVisualization Few utilize the GPU's programmable pipeline Data stored as floating-point OpenGL textures [J. Johansson et al. 2006] Use graphics hardware to improve rendering [M. Florek, M. Novotný 2006] Usage is opportunistic Still no general approach Revealing structure in visualizations of dense 2D and 3D parallel coordinates – J. Johansson et al. 2006
  • 8.
  • 9.
    Image-Space Visualization Operations(IVOs) Traditionally 3 stages Expose a final data image step Transform data sampled in screen space to colored pixels
  • 10.
    IVO Model DefineIVOs as functions operating on data tuples d = (d 1 , d 2 , …, d n ) M = {(s x , s y ), (l x , l y ), … } G = {u 1 , u 2 , …} p = (p R , p G , p B , p A ) ivo :: I = (d, M, G)  p
  • 11.
    IVO Components IVOComponents Color Mapping Color scales (1, 2, and even 3 dimensional) Glyph Rendering Bar chart Line graphs Filtering Discard tuples that fall outside a desired range Dynamic Queries Computation Statistical analysis Arithmetic operations
  • 12.
  • 13.
  • 14.
    GPU Shader ProgrammingModel Stream programming model [A. Fournier and D. Fussell] Transform input streams to output streams Shaders (kernels) Kernel program invoked by a stream processor Called for each element in the input stream Executed independently of all other kernels Large number of parallel kernels provides extreme performance Kernel types Vertex – operates on a single 3D vertex in the stream Fragment (pixel) – invoked for every pixel to be drawn Geometry – generate new primitives
  • 15.
    Shaders as IVOsPer fragment data Data specific to the individual tuple Per layer data Data common among the entire set of tuples
  • 16.
    Visualization Application Polarbar chart IVO Layers
  • 17.
    Visualization Application Regularbar chart IVO Control the inputs to the IVO with drop down boxes
  • 18.
    Visual IVO EditorVisually specify the shader pipeline Removes need for programming expertise Provides easy-to-use pre-defined functions
  • 19.
  • 20.
    Results IVOs allowfor more flexibility over display Visual IVO editor removes need for expertise Performance gains Frame rate comparison Visualization OpenGL GPUVis Scatter plot 69.5 77.5 Node-link 19.9 68.0 Treemap 89.8 99.8
  • 21.
    Summary and FutureWork Refinement of the InfoVis Pipeline Visualization Application utilizing GPUs Visual Programming Environment Future Plans Control flow Hierarchical design GLSL code optimization Transition to CUDA or OpenCL
  • 22.