230 likes | 376 Views
Interactive Deformation and Visualization of Level-Set Surfaces Using Graphics Hardware. Aaron Lefohn Joe Kniss Charles Hansen Ross Whitaker. Problem Statement. Goal Interactive system for manipulating level-set, deformable surfaces Level-Set Challenges Computationally expensive
E N D
Interactive Deformation and Visualization of Level-Set Surfaces Using Graphics Hardware Aaron Lefohn Joe Kniss Charles Hansen Ross Whitaker
Problem Statement • Goal • Interactive system for manipulating level-set, deformable surfaces • Level-Set Challenges • Computationally expensive • Difficult to control • Solution • New streaming narrow-band algorithm • Unified computation and visualization
Overview • Motivation and Introduction • A Streaming Narrow-Band Solution 1. Virtual memory model 2. Substreams for static branch resolution 3. Efficient GPU-to-CPU message passing 4. Direct volume rendering of compressed/sparse data • Application and Demo • Conclusions
Level-Set Method Introduction • Deformable, implicit surfaces • Surface deformation via partial differential equation • General, flexible model Segmentation Surface Processing Tasdizen et al. IEEE Visualization 2002 Physical Simulation Premoze et al. Eurographics 2003
Level-Set Method Introduction • Implicit surface • Distance transform • denotes inside/outside • Surface motion • F = Signed speed in direction of normal
Level-Set Acceleration Introduction Compute Initialize Domain Update Domain • Narrow-Band/Sparse-Grid • Compute PDE only near the isosurface • Adalsteinson et al. 1995 • Whitaker et al. 1998 • Peng et al. 1999 • Time-dependent, sparse-grid solver
Level-Set Acceleration Introduction • Graphics Hardware (GPU) Implementations • Strzodka et al. 2001 • 2D level-set solver on NVIDIA GeForce 2 • Lefohn et al. 2002 • 3D level-set solver on ATI Radeon 8500 • 1x – 2x faster than CPU, but 10x more computations • Unpublished work
Scientific Computing on GPU Introduction Vertex & Texture Coordinates Vertex Processor Fragment Processor Rasterizer • GPUs • Inexpensive, fast, data-parallel, streaming architecture • Parallel “For-Each” call over data elements • Combination of computation and visualization Texture Data Frame/Pixel Buffer(s)
GPU Computational Capabilities Introduction Vertex Processor Fragment Processor Rasterizer • 2D computational domain • Restricted, data-parallel programming model • Slow GPU-to-CPU communication • Limited (high-bandwidth) memory on GPU Texture Data CPU Vertex & Texture Coordinates Frame/Pixel Buffer(s)
A Streaming Narrow-Band Algorithm Algorithm Time-Dependent, Sparse Solver • 2D computational domain Multi-dimensional virtual memory model • Restricted, data-parallel programming model Substream resolution of fragment-level conditionals • Slow GPU-to-CPU communication Efficient message passing algorithm • Limited, high-bandwidth memory on GPU Direct volume rendering of level-set solution on GPU
1. Multi-Dimensional Virtual Memory Algorithm • Virtual Memory • 3D virtual memory -- Level-set computation • 2D physical memory -- GPU optimizations • 16 x 16 pixel memory pages -- Locality / Memory usage Virtual Memory Space Physical Memory Space Unused Pages Inside Outside Active Pages
1. Multi-Dimensional Virtual Memory Algorithm Physical Addresses for Active Memory Pages PDE Computation 15-250 passes CPU GPU Memory Requests • Cooperation between CPU and GPU • CPU • Memory manager • Page table • GPU • Performs level-set computation • Issues memory requests
2. Static Resolution of Conditionals Algorithm • Problem • Neighbor lookups across page boundaries • Branching slow on GPU • Solution • Substreams • Create homogeneous data streams • Resolve conditionals with geometry : Points, Lines, Quads • Optimizes cache and pre-fetch performance
3. Efficient Message Passing Algorithm Algorithm f s +x -x +y -y +z -z • Problem: Time-Dependent Narrow Band • GPU memory request mechanism • Low bandwidth GPU-to-CPU communication • Solution • Compress GPU memory request • Use GPU computation to save GPU-to-CPU bandwidth Mipmapping
4. Direct Volume Rendering of Level Set Algorithm • Render from 2D physical memory • Reconstruct 2D slice of virtual memory space • On-the-fly on GPU • Use 2D geometry and texture coordinates
4. Direct Volume Rendering of Level Set Algorithm • Fully general volume rendering of compressed data • Tri-linear interpolation • 2D slice-based volume rendering • Full transfer function and lighting capabilities • No data duplication
Segmentation Application Application • Extract feature from volume • Two speed functions, FD and FH • Data-based speed, FD • Mean-curvature speed, FH • Smooth noisy solutions • Prevent “leaks” FD(I) I (Intensity) FD= 0
Demo Application • Segmentation of MRI volumes • 1283 scalar volume • Details • ATI Radeon 9800 Pro • ARB_fragment_program ARB_vertex_program • 2.6 GHz Intel Xeon with 1 GB RAM
Region-of-Interest Volume Rendering Application • Limit extent of volume rendering • Use level-set segmentation to specify region • Add level-set value to transfer function
GPU Narrow-Band: Performance Results • Performance • 10x – 15x faster than optimized CPU version • Linear dependence on size of narrow band • Bottlenecks • Fragment processor • Conservative time step • Need for global accumulation register (min, max, sum, etc.)
Summary Conclusions • Interactive 3D Level-Set Computation/Visualization • Integrated segmentation and volume rendering • Intuitive parameter setting • Quantified effectiveness, user study (MICCAI 2003) • Streaming Narrow-Band Solution 1. Virtual memory model 2. Substreams for static branch resolution 3. Efficient GPU-to-CPU message passing 4. Direct volume rendering of compressed/sparse data
Future Directions Conclusions • Other level-set applications • User interface • Depth culling within active pages • Sherbondy et al. talk at 3:15pm today • “Fast Volume Segmentation With Simultaneous Visualization Using Programmable Graphics Hardware” • N-D GPU virtual memory system • Separate memory layout from computation
Acknowledgements • Gordon Kindlmann –- “Teem” raster-data toolkit • Milan Ikits –- “Glew” OpenGL extension wrangler • SCI faculty, students, and staff • John Owens at UCDavis • Evan Hart, Mark Segal, Arcot Preetham, Jeff Royle, and Jason Mitchell at ATI Technologies, Inc. • Brigham and Women’s Hospital • CIVM at Duke University • Office of Naval Research grant #N000140110033 • National Science Foundation grant #ACI008915 and #CCR0092065