towards utilizing gpus in information visualization
DESCRIPTION
Presentation from IEEE InfoVis 2009 (given by Bryan McDonnel).TRANSCRIPT
![Page 1: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/1.jpg)
Towards Utilizing GPUs in Information Visualization: A
Model and Implementation of Image-Space Operations
Bryan McDonnel
Niklas Elmqvist
![Page 2: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/2.jpg)
GPUVis
• A refinement of the traditional InfoVis pipeline
• A visualization application utilizing GPUs
• A visual programming environment
![Page 3: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/3.jpg)
MOTIVATIONGPUVis
![Page 4: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/4.jpg)
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
![Page 5: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/5.jpg)
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
![Page 6: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/6.jpg)
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
![Page 7: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/7.jpg)
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
![Page 8: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/8.jpg)
METHODGPUVis
![Page 9: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/9.jpg)
Image-Space Visualization Operations (IVOs)
• Traditionally 3 stages• Expose a final data image step• Transform data sampled in screen space to colored
pixels
![Page 10: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/10.jpg)
IVO Model
• Define IVOs as functions operating on data tuples
d = (d1, d2, …, dn)
M = {(sx, sy), (lx, ly), … }
G = {u1, u2, …}
p = (pR, pG, pB, pA)
ivo :: I = (d, M, G) p
![Page 11: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/11.jpg)
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
![Page 12: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/12.jpg)
Composing IVOs
![Page 13: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/13.jpg)
IMPLEMENTATIONGPUVis
![Page 14: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/14.jpg)
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
![Page 15: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/15.jpg)
Shaders as IVOs
• Per fragment data• Data specific to the individual tuple
• Per layer data• Data common among the entire set of tuples
![Page 16: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/16.jpg)
Visualization Application
• Polar bar chart IVO
• Layers
![Page 17: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/17.jpg)
Visualization Application
• Regular bar chart IVO
• Control the inputs to the IVO with drop down boxes
![Page 18: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/18.jpg)
Visual IVO Editor
• Visually specify the shader pipeline
• Removes need for programming expertise
• Provides easy-to-use pre-defined functions
![Page 19: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/19.jpg)
DEMOGPUVis
![Page 20: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/20.jpg)
Results
Visualization OpenGL GPUVis
Scatter plot 69.5 77.5
Node-link 19.9 68.0
Treemap 89.8 99.8
• IVOs allow for more flexibility over display• Visual IVO editor removes need for expertise• Performance gains
• Frame rate comparison
![Page 21: Towards Utilizing GPUs in Information Visualization](https://reader033.vdocument.in/reader033/viewer/2022061120/546cc394af7959e91e8b5cc9/html5/thumbnails/21.jpg)
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