Towards Utilizing GPUs in Information Visualization

1,076 views

Published on

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

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,076
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Towards Utilizing GPUs in Information Visualization

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

×