Internal:CDT3D GPU Smoothing: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Spyridon97 (talk | contribs)
Spyridon97 (talk | contribs)
Line 26: Line 26:
###### Original point value on GPU, grid(1) block(1)
###### Original point value on GPU, grid(1) block(1)
###### Grid creation on GPU, grid(1) block(1)
###### Grid creation on GPU, grid(1) block(1)
###### Grid point values using global values array on GPU, grid(2, 2, 2) block(4, 4, 4)
###### Grid point values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
###### Reduction using global values array on GPU, grid(1) block(1)
###### Reduction using global values array(512) on GPU, grid(1) block(1)
##### Time total = 18.563 sec
##### Time total = 18.563 sec
###### CPU = 0.79182 sec
###### CPU = 0.79182 sec
Line 36: Line 36:
###### MemCopyH2D = 0.12792 sec
###### MemCopyH2D = 0.12792 sec
###### MemCopyD2H = 0.00002 sec
###### MemCopyD2H = 0.00002 sec
#### Version 2 (copy what you need):
##### Steps:
###### Bounding box on CPU
###### Grid creation on CPU
###### Grid point 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
###### Steo 4 = 1.74147 sec
###### MemCopyH2D = 0.37493 sec
###### MemCopyD2H = 0.15225 sec
#### Version 3 (copy what you need):
##### Steps:
###### Bounding box on CPU
###### Grid creation on CPU
###### Grid point 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
###### Steo 4 = 0.19378 sec
###### MemCopyH2D = 0.37604 sec
###### MemCopyD2H = 0.15332 sec


### Parallel CPU-wise:
### Parallel CPU-wise:

Revision as of 00:04, 17 March 2021

Presentations

Spring 2021

  1. A Unified Approach for Parallel Mesh Operations by Christos✔
  2. GPU Architecture ✔

Code

Spring 2021

  1. Discrete Mesh Optimization using the paper: Discrete Mesh Optimization on GPU, The results below are using the tet_shape metric from the Verdict library
    1. CPU version:
      1. Sequential:
        1. Dihedral Quality of different smoothing methods:✔
          Vertex_Smoothing_Methods_Dihedral_Angle_Quality.png
        2. Shape Quality of different smoothing methods:✔
          Shape_Quality.png
      2. Parallel:
        1. Dihedral Quality: Sequential vs Parallel:✔
          Discrete_Vertex_Smoothing_Dihedral_Angle_Quality.png
        2. Speed-Up:✔
          Smoothing_Speed-up_ 1_iteration.png
        3. RollBacks✔:
          Percentage_of_Average_Rollbacks_per_Thread.png
    2. GPU version:
      1. Sequential CPU-wise:
        1. Version 1 (all points copied):
          1. Steps:
            1. Bounding box on GPU, grid(1) block(1)
            2. Original point value on GPU, grid(1) block(1)
            3. Grid creation on GPU, grid(1) block(1)
            4. Grid point values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
            5. Reduction using global values array(512) on GPU, grid(1) block(1)
          2. Time total = 18.563 sec
            1. CPU = 0.79182 sec
            2. Steps 1 & 2 = 8.31743 sec
            3. Step 3 = 1.03768 sec
            4. Step 4 = 6.55488 sec
            5. Steo 5 = 1.73327 sec
            6. MemCopyH2D = 0.12792 sec
            7. MemCopyD2H = 0.00002 sec
        2. Version 2 (copy what you need):
          1. Steps:
            1. Bounding box on CPU
            2. Grid creation on CPU
            3. Grid point values using global values array(512) on GPU, grid(2, 2, 2) block(4, 4, 4)
            4. Reduction using global values array(512) on GPU, grid(1) block(1)
            5. Original point value on CPU concurrently with steps 3 & 4
          2. Time total = 10.8227 sec
            1. CPU = 1.8857 sec
            2. Step 3 = 6.47006 sec
            3. Steo 4 = 1.74147 sec
            4. MemCopyH2D = 0.37493 sec
            5. MemCopyD2H = 0.15225 sec
        3. Version 3 (copy what you need):
          1. Steps:
            1. Bounding box on CPU
            2. Grid creation on CPU
            3. Grid point 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)
            4. Reduction using global values and ids arrays(8+8) on GPU, grid(1) block(8)
            5. Original point value on CPU concurrently with steps 3 & 4
          2. Time total = 9.17189 sec
            1. CPU = 2.04448 sec
            2. Step 3 = 6.40427 sec
            3. Steo 4 = 0.19378 sec
            4. MemCopyH2D = 0.37604 sec
            5. MemCopyD2H = 0.15332 sec
      1. Parallel CPU-wise: