implementing challenging seismic attributes on the gpu...
TRANSCRIPT
®
Porting Makes You Stronger Implementing Challenging Seismic Attributes
on the GPU
Jon Marbach,
Rich Welch,
Steve Dominguez,
Pate Motter
TerraSpark Geosciences
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved.
• Talk overview
• Introductions
• Algorithms Ported
• Development Strategy
• Supporting GPU Acceleration in a Commercial Product
• Performance
• “Porting Makes You Stronger”
• Workflow Impact
• Conclusions
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 2
Implementing Seismic Attributes on the GPU
• Who am I?
• Software Architect / Engineer, not a
Geoscientist
• Couldn’t tell a Horst from a Graben
• Background in graphics (with OpenGL)
• I love GPUs!
• An OpenCL user
• Not a CUDA expert
• Under pressure to get results quickly
• I go for quick-wins
• Might not know every trick in the book
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 3
Implementing Seismic Attributes on the GPU
• Who is TerraSpark?
• Maker of the seismic interpretation
package Insight Earth™
• Workstation-class application
• Specialize in interpretation of
Faults, Salt, Stratigraphy, and
Shale Plays
• Time-saving tools for interpreters
• “True 3D” interpretation approach
• Compute-intensive attribute calculations
• Visualization-oriented
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 4
Implementing Seismic Attributes on the GPU
• Why GPU Acceleration?
• 3D “Image” Data
• Algorithms are image-
processing inspired
• Algorithms are data-parallel
• Algorithms tend to “gather”
many neighboring samples
• Can (sometimes) leverage
fast GPU interpolation
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 5
Implementing Seismic Attributes on the GPU
• 4 Key Interpretation Algorithms / Volumes
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 6
Implementing Seismic Attributes on the GPU
Horizon Orientation
(Dip/Strike)
Curvature
Fault Enhance Volume
Structurally-Oriented
Noise Filtering
• Horizon Orientation (Dip/Strike)
• Why is it important?
• Guides other “Structurally Oriented” attribute
calculations
• Indicates trends in the volume
• Why is it compute-intensive?
• Calculates gradient structure tensors
• Relies on an eigensystem solver
• Smooths tensors over a large area
• Why accelerate it?
• CPU runtimes on the order of tens of minutes
• Creates workflow bottlenecks
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 7
Implementing Seismic Attributes on the GPU
• Structurally Oriented Statistical Filtering
• Why is it important?
• Removes noise while preserving steeply
dipping features
• Why is it compute-intensive?
• Well… it’s not, really but:
• Computes a unique sampling field for each
voxel
• Collects interpolated samples
• Why accelerate it?
• CPU runtimes on the order of minutes
• Very frequently used
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 8
GPU Acceleration for Interpretation
• Volumetric Curvature
• Why is it important?
• Can reveal subtle stratigraphic features
• Can reveal small-scale fracturing
• Why is it compute-intensive?
• Performs fine-grained radial sampling
• Operates on vector data
• Interpolates samples
• Why accelerate it?
• CPU runtimes on the order of tens of minutes
• Increase turn-around time on parameter testing
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 9
Implementing Seismic Attributes on the GPU
• Fault Enhance (Automated Fault Extraction, aka “AFE”)
• Why is it important?
• Identifies and eases interpretation
of potentially 1000s of faults
• Huge savings of interpreter time
• Why is it compute-intensive?
• Samples large neighborhoods
of voxels in 3D (a radial search)
• Interpolates samples in 3D
• Why accelerate it?
• CPU runtimes on the order of hours or days!
• Sensitive to parameterization, but iteration impractical without GPU
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 10
Implementing Seismic Attributes on the GPU
• Fault Enhance (Automated Fault Extraction, aka “AFE”)
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 11
Implementing Seismic Attributes on the GPU
Time-slice Section
Shown in inverted colormap for comparison with coherence
• Development/Robustness Strategy
• Start small, build infrastructure, apply knowledge/tools to tougher problems
• Target GPUs with specific feature set
• Fermi and Kepler
• Target wide range of hardware
• Handle lowest common denominator (1GB VRAM)
• Only accelerate “worst-offenders” first, expand out later
• Goal: “It just works (and produces accurate results)”
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 12
Implementing Seismic Attributes on the GPU
• Supporting a GPU Application commercially
• Most issues are hardware / driver / environment (expected)
• Strategy appears to be paying off
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 13
Implementing Seismic Attributes on the GPU
• Single GPU Speedup vs CPU (8 cores @2.4 GHz)
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 14
Implementing Seismic Attributes on the GPU
• Multi-GPU Speedup vs CPU (8 cores @2.4 GHz)
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 15
Implementing Seismic Attributes on the GPU
• Single Kepler GPU Speedup vs CPU (8 cores @2.4 GHz)
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 16
Implementing Seismic Attributes on the GPU
• Single Kepler GPU Speedup vs CPU (after Kepler tuning)
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 17
Implementing Seismic Attributes on the GPU
• Porting Makes You Stronger
• Just because it’s C, doesn’t mean it’s right
• Found problems with every single algorithm
• Porting forces a hard look at the existing CPU code and its behavior
• In one case, improved the CPU implementation speed by 3x
• One algorithm (AFE) was entirely re-written
• Improved accuracy of most algorithms for both CPU and GPU
• Stronger Team
• Stronger Product
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 18
Implementing Seismic Attributes on the GPU
Input Volume
Size
Insight Earth
1.7 AFE CPU
Runtime
Insight Earth
1.8 AFE CPU
Runtime
1.8 CPU
Speedup
over 1.7
1.8 AFE GPU
Runtime -
Turbo AFE
Speedup
over Insight
Earth 1.7
• Impact on overall Fault Extraction workflow time
• This includes automatic extraction of fault surfaces from volume
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 19
Implementing Seismic Attributes on the GPU
• Conclusions
• Seismic attribute calculations are a “no-brainer”
for GPU acceleration
• Performance gains are well worth the effort
• Porting to the GPU can improve CPU code too
• GPU Acceleration brings server-class
performance to seismic interpreters’ workstations
• Small investment in hardware == big
improvement in interpreter productivity (and
happiness!?)
• Available commercially from TerraSpark today
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 20
Implementing Seismic Attributes on the GPU
• Questions?
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved. Slide 21
Implementing Seismic Attributes on the GPU
®
Porting Makes You Stronger Implementing Challenging Seismic
Attributes on the GPU
Jon Marbach
Rich Welch
Steve Dominguez
Pate Motter
TerraSpark Geosciences
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved.
Special Thanks to our research sponsors:
Apache, BHP, BP, Chevron, ConocoPhillips, Repsol, and Stone Energy
Hardware support provided by: Advanced HPC, HP, Nvidia
®
Jon Marbach
Rich Welch
Steve Dominguez
Pate Motter
TerraSpark Geosciences
Porting Makes You Stronger Implementing Challenging Seismic
Attributes on the GPU
© 2013 TerraSpark Geosciences, LLC. All Rights Reserved.
Special Thanks to our research sponsors:
Apache, BHP, BP, Chevron, ConocoPhillips, Repsol, and Stone Energy
Hardware support provided by: Advanced HPC, HP, Nvidia