22
Towards Utilizing GPUs in Information Visualization: A Model and Implementation of Image-Space Operations Bryan McDonnel Niklas Elmqvist

Towards Utilizing GPUs in Information Visualization

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Towards Utilizing GPUs in Information Visualization

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

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

MOTIVATIONGPUVis

Page 4: Towards Utilizing GPUs in Information Visualization

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

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

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

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

METHODGPUVis

Page 9: Towards Utilizing GPUs in Information Visualization

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

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

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

Composing IVOs

Page 13: Towards Utilizing GPUs in Information Visualization

IMPLEMENTATIONGPUVis

Page 14: Towards Utilizing GPUs in Information Visualization

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

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

Visualization Application

• Polar bar chart IVO

• Layers

Page 17: Towards Utilizing GPUs in Information Visualization

Visualization Application

• Regular bar chart IVO

• Control the inputs to the IVO with drop down boxes

Page 18: Towards Utilizing GPUs in Information Visualization

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

DEMOGPUVis

Page 20: Towards Utilizing GPUs in Information Visualization

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

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