Internal:GPU Usage: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Spyridon97 (talk | contribs)
Spyridon97 (talk | contribs)
Line 1: Line 1:
===PODM Refactoring===
===PODM Refactoring===
# Find a Predicates library to replace CGAL library. A possible solution is [https://hal.inria.fr/hal-01225202 Predicate Construction Kit] and its [https://gforge.inria.fr/frs/?group_id=5833 code].
# Remove Boost library and replace with std::thread, ask Christos for Barrier.
# Remove VTK library
# Update ITK
# Choose a specific C++ coding style✔
# Choose a specific C++ coding style✔
# Use C++17 standard✔
# Use C++17 standard✔
# Create Mesh Unstructured Grid class (as VTk's) to facilitate IOs and Linear Interpolation for N Dimensions
# Remove the CGAL library by replacing its predicates with the following one which is way faster: (TODO)
## Benchmark: [https://crtc.cs.odu.edu/Internal:4D_Predicates_Benchmark PCK vs CGAL Predicates Benchmark]
## Paper: [https://hal.inria.fr/hal-01225202 Predicate Construction Kit]
## Code:  [https://gforge.inria.fr/frs/?group_id=5833 code]
# Remove Boost library by replacing its threads with std::thread (ask Christos for Barrier). (TODO)
# Remove VTK library and replace it with MeshIO (TODO)
# Update ITK to the newest version (TODO)
# Combine 3D and 4D PODM versions into one abstract program, in which the user will choose what he wants to use.
# Combine 3D and 4D PODM versions into one abstract program, in which the user will choose what he wants to use.
## Create namespaces for each PODM which will help creating a templated PODM wrapper✔
## Create namespaces for each PODM which will help to create a templated PODM wrapper✔
## Template the common code of each PODM for 3-4 dimensions (or even more or less)
## Template the common code of each PODM for 3-4 dimensions (or even more or less) (TODO)
## Keep only useful Defines
## Keep only useful Defines
## For PODM3D (TODO)
## For PODM4D✔
# Use GPUs:
# Use GPUs:
## For “itkSignedMaurerParallelDistanceMapImageFilter” code:
## For “itkSignedMaurerParallelDistanceMapImageFilter” code:
### Understand the code by reading the [https://cepm.cs.odu.edu/pub/papers/journal_23.pdf Parallel N-Dimensional Exact Signed Euclidean Distance Transform] paper
### Understand the code by reading the [https://cepm.cs.odu.edu/pub/papers/journal_23.pdf Parallel N-Dimensional Exact Signed Euclidean Distance Transform] paper
### Study if it’s beneficial to convert it in order to use GPUs. See the papers:
### Study if it’s beneficial to convert it in order to use GPUs. See the papers:
#### [https://cepm.cs.odu.edu/pub/papers/journal_18.pdf A Multigrain Delaunay Mesh Generation Method for Multicore SMT-based Architectures],  
#### [https://cepm.cs.odu.edu/pub/papers/journal_18.pdf A Multigrain Delaunay Mesh Generation Method for Multicore SMT-based Architectures], (TODO)
#### [https://cepm.cs.odu.edu/pub/papers/journal_19.pdf Algorithm, Software, and Hardware Optimizations for Delaunay Mesh Generation on Simultaneous Multithreaded Architectures]
#### [https://cepm.cs.odu.edu/pub/papers/journal_19.pdf Algorithm, Software, and Hardware Optimizations for Delaunay Mesh Generation on Simultaneous Multithreaded Architectures] (TODO)
## For Predicates:
## For Predicates:
### Based on [https://imr.sandia.gov/_assets/documents/2019_IMR_Papers/6B.1-de%20Matos%20Menezes.pdf ACCELERATING THE EXACT EVALUATION OF GEOMETRIC PREDICATES WITH GPUS]
### Based on [https://imr.sandia.gov/_assets/documents/2019_IMR_Papers/6B.1-de%20Matos%20Menezes.pdf ACCELERATING THE EXACT EVALUATION OF GEOMETRIC PREDICATES WITH GPUS] (TODO)
### Based on [https://ieeexplore.ieee.org/abstract/document/8692354 GPredicates - GPU Implementation of Robust and Adaptive Floating-Point Predicates for Computational Geometry]
### Based on [https://ieeexplore.ieee.org/abstract/document/8692354 GPredicates - GPU Implementation of Robust and Adaptive Floating-Point Predicates for Computational Geometry] (TODO)
# Decouple Contentions managers and Load Balancing from the Meshing Procedure.
# Decouple Contentions managers and Load Balancing from the Meshing Procedure.
# Add PDR
# Add PDR
# Add Smoothing
# Add Smoothing

Revision as of 10:47, 25 February 2020

PODM Refactoring

  1. Choose a specific C++ coding style✔
  2. Use C++17 standard✔
  3. Remove the CGAL library by replacing its predicates with the following one which is way faster: (TODO)
    1. Benchmark: PCK vs CGAL Predicates Benchmark
    2. Paper: Predicate Construction Kit
    3. Code: code
  4. Remove Boost library by replacing its threads with std::thread (ask Christos for Barrier). (TODO)
  5. Remove VTK library and replace it with MeshIO (TODO)
  6. Update ITK to the newest version (TODO)
  7. Combine 3D and 4D PODM versions into one abstract program, in which the user will choose what he wants to use.
    1. Create namespaces for each PODM which will help to create a templated PODM wrapper✔
    2. Template the common code of each PODM for 3-4 dimensions (or even more or less) (TODO)
    3. Keep only useful Defines
    4. For PODM3D (TODO)
    5. For PODM4D✔
  8. Use GPUs:
    1. For “itkSignedMaurerParallelDistanceMapImageFilter” code:
      1. Understand the code by reading the Parallel N-Dimensional Exact Signed Euclidean Distance Transform paper
      2. Study if it’s beneficial to convert it in order to use GPUs. See the papers:
        1. A Multigrain Delaunay Mesh Generation Method for Multicore SMT-based Architectures, (TODO)
        2. Algorithm, Software, and Hardware Optimizations for Delaunay Mesh Generation on Simultaneous Multithreaded Architectures (TODO)
    2. For Predicates:
      1. Based on ACCELERATING THE EXACT EVALUATION OF GEOMETRIC PREDICATES WITH GPUS (TODO)
      2. Based on GPredicates - GPU Implementation of Robust and Adaptive Floating-Point Predicates for Computational Geometry (TODO)
  9. Decouple Contentions managers and Load Balancing from the Meshing Procedure.
  10. Add PDR
  11. Add Smoothing