Interactive Level-Set Deformation On the GPU



Similar documents
Interactive Level-Set Segmentation on the GPU

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Parallel 3D Image Segmentation of Large Data Sets on a GPU Cluster

Medical Image Processing on the GPU. Past, Present and Future. Anders Eklund, PhD Virginia Tech Carilion Research Institute

Computer Graphics Hardware An Overview

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

GPU for Scientific Computing. -Ali Saleh

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

GPU Architecture. Michael Doggett ATI

High Performance. CAEA elearning Series. Jonathan G. Dudley, Ph.D. 06/09/ CAE Associates

Introduction to GPU Programming Languages

GPU-based Decompression for Medical Imaging Applications

L20: GPU Architecture and Models

Real-time Visual Tracker by Stream Processing

Hardware-Aware Analysis and. Presentation Date: Sep 15 th 2009 Chrissie C. Cui

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

1. INTRODUCTION Graphics 2

Employing Complex GPU Data Structures for the Interactive Visualization of Adaptive Mesh Refinement Data

Data Parallel Computing on Graphics Hardware. Ian Buck Stanford University

LBM BASED FLOW SIMULATION USING GPU COMPUTING PROCESSOR

QCD as a Video Game?

GPU Point List Generation through Histogram Pyramids

HPC Deployment of OpenFOAM in an Industrial Setting

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Radeon HD 2900 and Geometry Generation. Michael Doggett

IP Video Rendering Basics

Volume Visualization Tools for Geant4 Simulation

2020 Design Update Release Notes November 10, 2015

The Design and Implementation of a C++ Toolkit for Integrated Medical Image Processing and Analyzing

In-Memory Databases Algorithms and Data Structures on Modern Hardware. Martin Faust David Schwalb Jens Krüger Jürgen Müller

Introduction to GPU hardware and to CUDA

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

GPUs for Scientific Computing

Introduction to GPGPU. Tiziano Diamanti

APPLICATIONS OF LINUX-BASED QT-CUDA PARALLEL ARCHITECTURE

Graphical Processing Units to Accelerate Orthorectification, Atmospheric Correction and Transformations for Big Data

General Purpose Computation on Graphics Processors (GPGPU) Mike Houston, Stanford University

Towards Large-Scale Molecular Dynamics Simulations on Graphics Processors

Parallel Simplification of Large Meshes on PC Clusters

Questions and Answers

OpenGL Performance Tuning

GPGPU Computing. Yong Cao

NVIDIA GeForce GTX 580 GPU Datasheet

Graphical Processing Units to Accelerate Orthorectification, Atmospheric Correction and Transformations for Big Data

How to choose a suitable computer

Oracle Database In-Memory The Next Big Thing

Turbomachinery CFD on many-core platforms experiences and strategies

HPC with Multicore and GPUs

Large-Data Software Defined Visualization on CPUs

Volume visualization I Elvins

The Future Of Animation Is Games

Table of Contents. P a g e 2

Choosing a Computer for Running SLX, P3D, and P5

GeoImaging Accelerator Pansharp Test Results

ArcGIS Pro: Virtualizing in Citrix XenApp and XenDesktop. Emily Apsey Performance Engineer

Introduction to GPU Architecture

Advanced Rendering for Engineering & Styling

Hardware design for ray tracing

Binary search tree with SIMD bandwidth optimization using SSE

Autodesk Revit 2016 Product Line System Requirements and Recommendations

Boundless Security Systems, Inc.

Data Visualization Using Hardware Accelerated Spline Interpolation

A Novel Way of Deduplication Approach for Cloud Backup Services Using Block Index Caching Technique

Introduction to GPU Computing

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

GPGPU: General-Purpose Computation on GPUs

GPU Computing with CUDA Lecture 2 - CUDA Memories. Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile

Recent Advances in HPC for Structural Mechanics Simulations

A NEW METHOD OF STORAGE AND VISUALIZATION FOR MASSIVE POINT CLOUD DATASET

Accelerating CFD using OpenFOAM with GPUs

OpenCL Optimization. San Jose 10/2/2009 Peng Wang, NVIDIA

Intel Pentium 4 Processor on 90nm Technology

Image Analysis for Volumetric Industrial Inspection and Interaction

Several tips on how to choose a suitable computer

Introduction to Computer Graphics

SUBJECT: SOLIDWORKS HARDWARE RECOMMENDATIONS UPDATE

Sage SalesLogix White Paper. Sage SalesLogix v8.0 Performance Testing

Several tips on how to choose a suitable computer

Power Benefits Using Intel Quick Sync Video H.264 Codec With Sorenson Squeeze

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

Application. EDIUS and Intel s Sandy Bridge Technology

Guided Performance Analysis with the NVIDIA Visual Profiler

Computer Graphics AACHEN AACHEN AACHEN AACHEN. Public Perception of CG. Computer Graphics Research. Methodological Approaches

Sparse Fluid Simulation in DirectX. Alex Dunn Dev. Tech. NVIDIA

Workstation Applications for Windows. NVIDIA MAXtreme User s Guide

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) mzahran@cs.nyu.edu

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

The Value of High-Performance Computing for Simulation

Transcription:

Interactive Level-Set Deformation On the GPU Institute for Data Analysis and Visualization University of California, Davis

Problem Statement Goal Interactive system for deformable surface manipulation Level-sets Challenges Deformation is slow Deformation is hard to control Solution Accelerate level-set computation with GPU Visualize computation in real-time J2

Collaborators University of Utah Joe Kniss Joshua Cates Charles Hansen Ross Whitaker J3

Overview Why? Motivation and previous work How? Streaming level-set algorithm Real-time visualization Segmentation application Does it work? Demonstration User study J4

Introduction Deformable Surfaces Applications of Level-Sets Fluid simulation Surface reconstruction for 3D scanning Surface processing Image / Volume segmentation J5

Introduction Level-Set Method Implicit surface Distance transform denotes inside/outside Surface motion F = Signed speed in direction of normal J6

Introduction CPU Level-Set Acceleration Narrow-Band/Sparse-Grid Compute PDE only near the surface Adalsteinson et al. 1995 Whitaker et al. 1998 Peng et al. 1999 Time-dependent, sparse-grid solver Initialize Domain Compute Update Domain J7

Introduction GPU Level-Set Acceleration Strzodka et al. 2001 2D level-set solver on NVIDIA GeForce 2 No narrow-band optimization Lefohn et al. 2002 Brute force 3D implementation on ATI Radeon 8500 No faster than CPU, but ~10x more computations No narrow-band optimization J8

Overview Why? Motivation and previous work How? Streaming narrow-band algorithm Real-time visualization Segmentation application Does it work? Demonstration User study J9

Algorithm GPU Narrow-Band Solver Sparse Volume Computation CPU algorithm: Traverse list of active voxels GPU algorithm: Compute all active voxels in parallel Initialize Domain Compute Update Domain Data structures change after each PDE time step J10

Algorithm Algorithm Goals GPU Narrow-Band Solver Goals 1. Leverage GPU parallelism 2. Perform sparse computation 3. Minimize GPU memory usage 4. Fast update of sparse data structures 5. Interactive visualization J11

Algorithm Algorithm Solutions Pack Active Voxels Into 2D Texture Increase parallelism, reduce computation and memory use Efficient GPU-to-CPU Message Passing Fast update of packed data structure On-The-Fly Decompression Volume Rendering Interactive visualization without increasing memory use J12

A Dynamic, Sparse GPU Data Structure Algorithm Multi-Dimensional Virtual Memory 3D virtual memory 2D physical memory 16 x 16 pixel pages J13

A Dynamic, Sparse GPU Data Structure GPU: Computes PDE Level-set computation (2D physical memory) Issues memory requests CPU: Manages memory Memory manager Page table (3D virtual memory) Algorithm Physical Addresses for Active Memory Pages CPU GPU PDE Computation 15-250 passes Memory Requests J14

A Dynamic, Sparse GPU Data Structure Problem Neighbor lookups across page boundaries Branching slow on GPU Algorithm Solution Substreams Create homogeneous data streams Resolve conditionals with geometry Lefohn 2003, Goodnight 2003, Harris 2003 Optimizes cache and pre-fetch performance Kapasi et al., Micro 33, 2000 J15

Algorithm GPU-to-CPU Message Passing Problem: Active Voxel Set is Time-Dependent 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 s +x -x +y -y +z -z φ J16

Overview Why? Motivation and previous work How? Streaming level-set algorithm Real-time visualization (with Joe Kniss) Segmentation application Does it work? Live demonstration User study J17

Visualization Direct Volume Rendering of Level Set Reconstruct 2D Slice of Virtual Memory Space On-the-fly decompression on GPU Use 2D geometry and texture coordinates J18

Visualization Direct Volume Rendering of Level Set Deferred Filtering: Volume Rendering Compressed Data 2D slice-based rendering: No data duplication Tri-linear interpolation Full transfer function and lighting capabilities J19

Overview Why? Motivation and previous work How? Streaming level-set algorithm Real-time visualization Segmentation application Does it work? Demonstration User study J20

Application Level-Set Segmentation Application Idea: Segment Surface from 3D Image Begin with seed surface Deform surface into target segmentation J21

Results Demo Segmentation of MRI volumes 128 3 scalar volume Hardware Details ATI Radeon 9800 Pro 1.7 GHz Intel Pentium 4 1 GB of RAM J22

Demo J23

GPU Narrow-Band Performance Results Performance 10x 15x faster than optimized CPU version (Insight Toolkit) Linear dependence on size of narrow band Bottlenecks Fragment processor (~80%) Conservative time step Need for global accumulation register (min, max, sum, etc.) J24

Overview Why? Motivation and previous work How? Streaming level-set algorithm Real-time visualization Segmentation application Does it work? Demonstration User study (with Josh Cates) J25

Evaluation User Study Goal Can a user quickly find parameter settings to create an accurate, precise 3D segmentation? Evaluation Relative to hand contouring J26

Evaluation User Study Results Efficiency 6 ± 3 minutes per segmentation (vs multiple hours) Solver idle 90% - 95% of time Precision Intersubject similarity significantly better 94.04% ± 0.04% vs. 82.65% ± 0.07% Accuracy Within error bounds of expert hand segmentations Compares well with other semi-automatic techniques Kaus et al., Radiology, 2001 J27

Summary Conclusions Interactive Level-Set System 10x 15x speedup over optimized CPU implementation Intuitive parameter tuning User study evaluation Algorithm Developments Multi-dimensional virtual memory Substreams GPU-to-CPU Message passing Volume rendering packed data J28

Conclusions Future Directions Other Level-Set Applications Surface processing, surface reconstruction, physical simulation Integrate Code Into Open Source Software The Insight Toolkit (www.itk.org)? Interactive Visulation allows for simultaneous visualization and simulation What problems can be solved with interactive visulation? What is the user interface for a visulation? J29

Acknowledgements Joe Kniss Josh Cates Gordon Kindlmann Milan Ikits Volume rendering Tumor user study Teem raster-data toolkit GLEW OpenGL extension wrangler Ross Whitaker, Charles Hansen, Steven Parker and John Owens ATI: Evan Hart, Mark Segal, Jeff Royle, and Jason Mitchell Brigham and Women s Hospital National Science Foundation Graduate Fellowship Office of Naval Research grant #N000140110033 National Science Foundation grant #ACI008915 and #CCR0092065 Interchangeable mobile GPUs J30

Questions? For More Information Google Lefohn level set http://graphics.cs.ucdavis.edu/~lefohn/ Journal Papers Based on this Work Lefohn, Kniss, Hansen, Whitaker, A Streaming Narrow Band Algorithm: Interactive Computation and Visualization of Level Sets, IEEE Transactions on Visualization and Computer Graphics, 10 (40), Jul / Aug, pp. 422-433, 2004 Cates, Lefohn, Whitaker, GIST: An Interactive, GPU-Based Level-Set Segmentation Tool for 3D Medical Images, Medical Image Analysis, to appear 2004 J31