Internal:CDT3D GPU Smoothing: Difference between revisions
Jump to navigation
Jump to search
Spyridon97 (talk | contribs) |
Spyridon97 (talk | contribs) |
||
| Line 13: | Line 13: | ||
## CPU version: | ## CPU version: | ||
### Sequential: | ### Sequential: | ||
#### Dihedral Quality of Discrete Vertex smoothing with Global Iterations:✔<be> [[File:Discrete_Vertex_Smoothing_Dihedral_Angle_Quality_Global_Iterations.png|1000px|Discrete_Vertex_Smoothing_Dihedral_Angle_Quality_Global_Iterations.png]] | |||
#### Dihedral Quality of different smoothing methods:✔<br>[[File:Vertex_Smoothing_Methods_Dihedral_Angle_Quality.png|1000px|Vertex_Smoothing_Methods_Dihedral_Angle_Quality.png]] | #### Dihedral Quality of different smoothing methods:✔<br>[[File:Vertex_Smoothing_Methods_Dihedral_Angle_Quality.png|1000px|Vertex_Smoothing_Methods_Dihedral_Angle_Quality.png]] | ||
#### Shape Quality of different smoothing methods:✔<br>[[File:Shape_Quality.png|1000px|Shape_Quality.png]] | #### Shape Quality of different smoothing methods:✔<br>[[File:Shape_Quality.png|1000px|Shape_Quality.png]] | ||
Revision as of 19:37, 22 March 2021
Presentations
Spring 2021
- A Unified Approach for Parallel Mesh Operations by Christos✔
- GPU Architecture ✔
Code
Spring 2021
- Discrete Mesh Optimization using the paper: Discrete Mesh Optimization on GPU, The results below are using the tet_shape metric from the Verdict library
- CPU version:
- GPU version:
- Sequential CPU-wise:
- Version 1 (all points copied):
- Steps:
- Bounding box on GPU, grid(1) block(1)
- Original point value on GPU, grid(1) block(1)
- Grid creation on GPU, grid(1) block(1)
- Gridpoint values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
- Reduction using global values array(512) on GPU, grid(1) block(1)
- Time total = 18.563 sec (90 sec on CPU sequential)
- CPU = 0.79182 sec
- Steps 1 & 2 = 8.31743 sec
- Step 3 = 1.03768 sec
- Step 4 = 6.55488 sec (per point)
- Step 5 = 1.73327 sec
- MemCopyH2D = 0.12792 sec
- MemCopyD2H = 0.00002 sec
- Steps:
- Version 2.0 (copy what you need):
- Steps:
- Bounding box on CPU
- Grid creation on CPU
- Gridpoint values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
- Reduction using global values array(512) on GPU, grid(1) block(1)
- !!! Note: access global memory multiple times !!!
- Original point value on CPU concurrently with steps 3 & 4
- Time total = 15.06656 sec
- CPU = 1.8857 sec (all cavities)
- Step 3 = 6.43994 sec
- Step 4 = 6.20552 sec
- MemCopyH2D = 0.38211 sec
- MemCopyD2H = 0.15329 sec
- Steps:
- Version 2.1 (copy what you need):
- Steps:
- Bounding box on CPU
- Grid creation on CPU
- Gridpoint values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
- Reduction using global values array(512) on GPU, grid(1) block(1)
- Original point value on CPU concurrently with steps 3 & 4
- Time total = 10.8227 sec
- CPU = 1.8857 sec
- Step 3 = 6.47006 sec
- Step 4 = 1.74147 sec
- MemCopyH2D = 0.37493 sec
- MemCopyD2H = 0.15225 sec
- Steps:
- Version 3 (copy what you need):
- Steps:
- Bounding box on CPU
- Grid creation on CPU
- Gridpoint values using global values and ids arrays(8+8) and reduction for the max value and id of a block on GPU, grid(8) block(64)
- Reduction using global values and ids arrays(8+8) on GPU, grid(1) block(8)
- Original point value on CPU concurrently with steps 3 & 4
- Time total = 9.17189 sec
- CPU = 2.04448 sec
- Step 3 = 6.40427 sec
- Step 4 = 0.19378 sec
- MemCopyH2D = 0.37604 sec
- MemCopyD2H = 0.15332 sec
- Steps:
- Version 3.1 (copy what you need):
- Steps:
- Bounding box on CPU
- Grid creation on CPU
- Gridpoint values using global values and ids arrays(8+8) and reduction for the max value and id of a block on GPU, grid(16) block(32)
- Reduction using global values and ids arrays(8+8) on GPU, grid(1) block(8)
- Original point value on CPU concurrently with steps 3 & 4
- Time total = 8.77189 sec
- CPU = 2.04448 sec
- Step 3 = 6.0427 sec
- Step 4 = 0.19378 sec
- MemCopyH2D = 0.37604 sec
- MemCopyD2H = 0.15332 sec
- Steps:
- Version 1 (all points copied):
- Parallel CPU-wise:
- Sequential CPU-wise:
