towards utilizing gpus in information visualization
DESCRIPTION
Presentation from IEEE InfoVis 2009 (given by Bryan McDonnel).TRANSCRIPT
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
MOTIVATIONGPUVis
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
METHODGPUVis
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 = (d1, d2, …, dn)
M = {(sx, sy), (lx, ly), … }
G = {u1, u2, …}
p = (pR, pG, pB, pA)
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
IMPLEMENTATIONGPUVis
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
DEMOGPUVis
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
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