Performed by: Liran Sperling 200476216 Gal Braun301357059 Instructor: Evgeny Fiksman
-
Upload
channing-massey -
Category
Documents
-
view
17 -
download
0
description
Transcript of Performed by: Liran Sperling 200476216 Gal Braun301357059 Instructor: Evgeny Fiksman
Performed by: Liran Sperling 200476216Gal Braun 301357059
Instructor: Evgeny Fiksman
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
הטכניון - מכון טכנולוגי לישראל
הפקולטה להנדסת חשמל
Technion - Israel institute of technologydepartment of Electrical Engineering
GPS/INS Tracking SystemUsing Particle Filter Model
1
Project Requirements
3
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Implement the INS/GPS system using particle filter model algorithm using Nvidia GPU and OpenCL
platform
GPGPU Languages
6
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
• DirectX (1995)
• Cuda (2006)
• OCL (2008)
• Open Computing Language
• Managed by Khronos group
• Use all computation resources in system
• Derived from C99
Khronos Group
6
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Our GPU – GeForce GTX285
Price: 200$ – 250$
GPU Architecture
6
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
OCL Memory model
6
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
From C to OpenCL
System Description
4
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Combined GPS/INS navigation based on the particles filter model
INS – Inertial Navigation System GPS – Global Positioning System Particles Filter Model – Combining the
GPS and INS algorithms.
System Description
4
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
INS
GPSWeightsrecalculation
Resampling
every 10 msec
every 1sec
every 1sec
Neff > Nth
Neff < Nth
CPU
Block Diagram
5
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Initialization
Particle Propagation
Particle weight calc
State vector calculation
Covariance matrix calc
Resampling
Regularization
No GPS measure
GPS measure
Particles number < Nth
Particles number > Nth
Weight recomputation
Randomizing
Effective particles number calc
Matrix Inversion
Many Particles (30000). Each particle is independent to the
others. Major parts of the algorithms can be
performed in parallel. OpenCL parallel computing will enable
to use the GPGPU computing power to optimize the algorithm performance.
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Why GPU and OCL?
We would like to use our multi-core GPGPU
to optimize the calculation time.How can it be done ?
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Calculation Optimization - Example
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Example - CPU
Calculation time = 0 time units
12 5 2 13 16 8 5 41 17 27 3 9 20 34 7 12
Sum = 012
1
17
2
19
3
32
4
…
219
15
231
16
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Example – Naive GPU
12 5 2 13 16 8 5 41 17 27 3 9 20 34 7 12
Sum = 529
Calculation time = 0 time units
0 529
1
Is the output correct ?
Can this level really be achieved cosidering memory access & sychronizing ?
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
But…
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Example – Our GPU Solution
12 5 2 13 16 8 5 41 17 27 3 9 20 34 7 12
Calculation time = 0 time units 1
0 0 0 0 0 0 0 029 32 5 22 36 42 12 530 0 0 065 74 17 75
2
0 082 149
3
Sum = 0 231
4
Takes approximately . Utilizes the GPUPU multi-core to the
maximum. And with large calculations (say, 30000
* 16), the calculation time is extremely reduced compared to the linear CPU solution.
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Our Solution
2log N
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Development Methodology
Final simulatio
n
Blocks layer
Function layer
Function layer: Transforming Matlab functions into OpenCL
kernels & code.– Major difficulty was tranforming the Matlab “natural”
matrix calculations into parallel C code and kernels.
Comparing the outputs of the matlab and OpenCL functions.
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Development Methodology
Block layer: The algorithm was divided into two major
parts: Particles propagation block & weights recalculation. Resampling block.
– Major difficulty was synchronizing the code parts done by the CPU (the parts written in C code) and the parts done by the GPU (the parts written as OpenCL kernels).
Comparing the outputs of the matlab and OpenCL.
– Major difficulty was finding errors since it meant checking iteration by iteration of the algorithm running.
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Development Methodology
Final Simulation: Running the entire algorithm over the 100
seconds long data file we received.
Comparing the results to the results provided by the C programming group.
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Development Methodology
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – X coordinate
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Y coordinate
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Z coordinate
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – X velocity
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Y velocity
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Z velocity
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running Time%GPU calculating time:
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running Time%GPU calculating time (excluding prediction):
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running TimeNumber of calls to function:
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running TimeNumber of calls to function (excluding Prediction & reads from memory):
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running TimeFunction run time:
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
Results – Running TimeCycle run time (presenting the 3 types of possible cycles):
Block Diagram
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
CPU
No GPS measure
GPS measure
Particles number < Nth
Particles number > Nth
Randomizing
Matrix Inversion
5
Initialization
Particle Propagation
Particle weight calc
State vector calculation
Covariance matrix calc
Resampling
Regularization
Weight recomputation
Effective particles number calc
5
0.58[ msec]
1.80[ msec]
10.44[ msec]
12.24[ msec]
3
High speed digital systems laboratoryהמעבדה למערכות ספרתיות מהירות
?שאלות