Towards Utilizing GPUs in Information Visualization
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Towards Utilizing GPUs in Information Visualization

on

  • 1,382 views

Presentation from IEEE InfoVis 2009 (given by Bryan McDonnel).

Presentation from IEEE InfoVis 2009 (given by Bryan McDonnel).

Statistics

Views

Total Views
1,382
Views on SlideShare
1,378
Embed Views
4

Actions

Likes
1
Downloads
13
Comments
0

1 Embed 4

http://www.slideshare.net 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Towards Utilizing GPUs in Information Visualization Presentation Transcript

  • 1. Towards Utilizing GPUs in Information Visualization: A Model and Implementation of Image-Space Operations Bryan McDonnel Niklas Elmqvist
  • 2. GPUVis
    • A refinement of the traditional InfoVis pipeline
    • A visualization application utilizing GPUs
    • A visual programming environment
  • 3. MOTIVATION GPUVis
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. METHOD GPUVis
  • 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
    • 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
  • 11. 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
  • 12. Composing IVOs
  • 13. IMPLEMENTATION GPUVis
  • 14. 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
  • 15. Shaders as IVOs
    • Per fragment data
      • Data specific to the individual tuple
    • Per layer data
      • Data common among the entire set of tuples
  • 16. Visualization Application
    • Polar bar chart IVO
    • Layers
  • 17. Visualization Application
    • Regular bar chart IVO
    • Control the inputs to the IVO with drop down boxes
  • 18. Visual IVO Editor
    • Visually specify the shader pipeline
    • Removes need for programming expertise
    • Provides easy-to-use pre-defined functions
  • 19. DEMO GPUVis
  • 20. 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
  • 21. 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
  • 22. Questions? [email_address] [email_address]