Ray Tracing with CUDA
-
Upload
pedro-alves -
Category
Documents
-
view
54 -
download
5
Transcript of Ray Tracing with CUDA
Ray tracing with GPGPUs
Pedro G. M. R. Alves and Ricardo Biloti,Unicamp & INCT-GP, BR
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
Ray Tracing
quarta-feira, 21 de setembro de 11
Ray Tracing
The ray theory is a high frequency approximation of the wave equation solution.
Rays are preferential paths for energy propagation.
quarta-feira, 21 de setembro de 11
Ray Tracing
quarta-feira, 21 de setembro de 11
Ray Tracing
Subsurface Model
quarta-feira, 21 de setembro de 11
Ray Tracing
Subsurface Model
Propagation Times
quarta-feira, 21 de setembro de 11
Ray Tracing
Direct Problem
Subsurface Model
Propagation Times
quarta-feira, 21 de setembro de 11
Ray Tracing
Direct Problem
Subsurface Model
Propagation Times
Inverse Problem
quarta-feira, 21 de setembro de 11
Ray Tracing
quarta-feira, 21 de setembro de 11
Ray Tracing
Comparison between real and simulated data.
quarta-feira, 21 de setembro de 11
Ray Tracing
Comparison between real and simulated data.
The synthetic model may need modification.
quarta-feira, 21 de setembro de 11
Ray Tracing
Comparison between real and simulated data.
The synthetic model may need modification.
More rays to trace.
quarta-feira, 21 de setembro de 11
Ray Tracing
Comparison between real and simulated data.
The synthetic model may need modification.
More rays to trace.
This step should be as fast as possible.
quarta-feira, 21 de setembro de 11
Ray Tracing
quarta-feira, 21 de setembro de 11
We need to solve a differential equation system to calculate a ray's path.
Ray Tracing
8<
:
@X@t = v2P
@P@t = 1
vrv
1
quarta-feira, 21 de setembro de 11
Ray Tracing
quarta-feira, 21 de setembro de 11
Runge-Kutta method to solve each equation.
Ray Tracing
quarta-feira, 21 de setembro de 11
Runge-Kutta method to solve each equation.
Interpolation method to find velocity on the ray's path.
Ray Tracing
quarta-feira, 21 de setembro de 11
Runge-Kutta method to solve each equation.
Interpolation method to find velocity on the ray's path.
Should be done fast.
Ray Tracing
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
Sequential Processing VS
Parallel Processing
In the Past: Increasing a computer's performance -> Increasing CPU's operating frequency.
quarta-feira, 21 de setembro de 11
Sequential Processing VS
Parallel Processing
In the Past: Increasing a computer's performance -> Increasing CPU's operating frequency.
Today: Multi-Core processors.
quarta-feira, 21 de setembro de 11
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
GPUs (Graphic Processor Unit).
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
GPUs (Graphic Processor Unit).
Dedicated processor to the graphic card.
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
GPUs (Graphic Processor Unit).
Dedicated processor to the graphic card.
Solution for graphic processing.
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
GPUs (Graphic Processor Unit).
Dedicated processor to the graphic card.
Solution for graphic processing.
Graphic applications use a lot of parallel processing, so GPUs have to be good in it.
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
Cores
Price
CPU
10
High
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
Cores
Price
CPU GPU
10 +400
High Popular
Sequential Processing VS
Parallel Processing
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
CUDA
quarta-feira, 21 de setembro de 11
CUDA
Developed by NVIDIA.
quarta-feira, 21 de setembro de 11
CUDA
Developed by NVIDIA.
Programs being executed on GPU.
quarta-feira, 21 de setembro de 11
CUDA
Developed by NVIDIA.
Programs being executed on GPU.
GPU being used as a General Purpose processor (GPGPU), taking advantage of parallel processing capability.
quarta-feira, 21 de setembro de 11
CUDA
quarta-feira, 21 de setembro de 11
A thread is a portion of a program that runs independently of and concurrently with other portions of the program.
CUDA
quarta-feira, 21 de setembro de 11
A thread is a portion of a program that runs independently of and concurrently with other portions of the program.
Thousands of threads running simultaneously on GPU against a few ones on CPU.
CUDA
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
Ray tracer
Ray Tracer application developed in C with support to CUDA.
quarta-feira, 21 de setembro de 11
Ray tracer
Ray Tracer application developed in C with support to CUDA.
Excellent for CUDA implementation.
quarta-feira, 21 de setembro de 11
Ray tracer
Ray Tracer application developed in C with support to CUDA.
Excellent for CUDA implementation.
Simultaneous path calculation for several rays.
quarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
0
1000
2000
0 2000 4000 6000 8000
2000
3000
4000
5000
m/s
Ray tracer
Marmousi Modelquarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
0
500
1000
1500
2000
2500
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Depth (m)
Range (m)
Ray tracer
quarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
0
1000
2000
0 2000 4000 6000 8000
2000
3000
4000
5000
m/s
0
500
1000
1500
2000
2500
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Depth (m)
Range (m)
Ray tracer
quarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
Ray tracer 0
500
1000
1500
2000
2500
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Dept
h (m
)
Range (m)
quarta-feira, 21 de setembro de 11
Ray tracer
quarta-feira, 21 de setembro de 11
Tracer supports parallel processing with CUDA (GPU) and sequential/parallel processing with the CPU.
Ray tracer
quarta-feira, 21 de setembro de 11
Tracer supports parallel processing with CUDA (GPU) and sequential/parallel processing with the CPU.
Processing performance by CPU uses GSL library.
Ray tracer
quarta-feira, 21 de setembro de 11
Tracer supports parallel processing with CUDA (GPU) and sequential/parallel processing with the CPU.
Processing performance by CPU uses GSL library.
CUDA doesn't support most of the common C libraries.
Ray tracer
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark application.
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark application.
GPU with CUDA.
CPU performing sequential processing.
CPU performing parallel processing.
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark application.
GPU with CUDA.
CPU performing sequential processing.
CPU performing parallel processing.
Least-squares method to analyse data.
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark
CPU: Intel Xeon X5570 @ 2.93GHz, 4 cores | GPU: NVIDIA Tesla C1060 @ 1.3 GHz, 240 cores
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 200 400 600 800 1000
Processing time (s)
Rays
GPU with CUDACPU parallel
CPU sequential
quarta-feira, 21 de setembro de 11
Benchmark
CPU: Intel Xeon X5570 @ 2.93GHz, 4 cores | GPU: NVIDIA Tesla C1060 @ 1.3 GHz, 240 cores
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 200 400 600 800 1000
Processing time (s)
Rays
GPU with CUDACPU parallel
CPU sequential
quarta-feira, 21 de setembro de 11
Benchmark
CPU: Intel Xeon X5570 @ 2.93GHz, 4 cores | GPU: NVIDIA Tesla C1060 @ 1.3 GHz, 240 cores
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 200 400 600 800 1000
Processing time (s)
Rays
GPU with CUDACPU parallel
CPU sequential
quarta-feira, 21 de setembro de 11
Benchmark
CPU: Intel Xeon X5570 @ 2.93GHz, 4 cores | GPU: NVIDIA Tesla C1060 @ 1.3 GHz, 240 cores
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 200 400 600 800 1000
Processing time (s)
Rays
GPU with CUDACPU parallel
CPU sequential
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark
CPU: Intel Xeon X5570 @ 2.93GHz, 4 cores | GPU: NVIDIA Tesla C1060 @ 1.3 GHz, 240 cores
0
10
20
30
40
50
60
70
0 20000 40000 60000 80000 100000
Processing time (s)
Rays
GPU with CUDACPU parallel
CPU sequential
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
66%
Benchmark
against parallel processing performed by CPU.
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
82%
Benchmark
against sequential processing performed by CPU.
quarta-feira, 21 de setembro de 11
Benchmark
quarta-feira, 21 de setembro de 11
Benchmark
Processing Type / Processor Parallel/CPU Sequential/CPU
Parallel/GPU 66% 82%
GPU's performance increase against CPU
quarta-feira, 21 de setembro de 11
Conclusion
quarta-feira, 21 de setembro de 11
quarta-feira, 21 de setembro de 11
Acknowledgements
GêBR project
Petrobras
WIT Consortium
quarta-feira, 21 de setembro de 11