Internal:CDT3D GPU Smoothing: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Kgarner (talk | contribs)
No edit summary
Spyridon97 (talk | contribs)
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):
#### Version 2.0 (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)
#######!!! 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
###### Step 3 = 6.43994 sec
###### Step 4 = 6.20552 sec
###### MemCopyH2D = 0.38211 sec
###### MemCopyD2H = 0.15329 sec
#### Version 2.1 (copy what you need):
##### Steps:
##### Steps:
###### Bounding box on CPU
###### Bounding box on CPU

Revision as of 13:30, 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. Step 5 = 1.73327 sec
            6. MemCopyH2D = 0.12792 sec
            7. MemCopyD2H = 0.00002 sec
        2. Version 2.0 (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)
              1. !!! Note access global memory multiple times !!!
            5. Original point value on CPU concurrently with steps 3 & 4
          2. Time total = 15.06656 sec
            1. CPU = 1.8857 sec
            2. Step 3 = 6.43994 sec
            3. Step 4 = 6.20552 sec
            4. MemCopyH2D = 0.38211 sec
            5. MemCopyD2H = 0.15329 sec
        3. Version 2.1 (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. Step 4 = 1.74147 sec
            4. MemCopyH2D = 0.37493 sec
            5. MemCopyD2H = 0.15225 sec
        4. 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. Step 4 = 0.19378 sec
            4. MemCopyH2D = 0.37604 sec
            5. MemCopyD2H = 0.15332 sec
      2. Parallel CPU-wise: