Internal:GPU Usage: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Spyridon97 (talk | contribs)
No edit summary
Spyridon97 (talk | contribs)
Line 6: Line 6:
# Choose a specific C++ coding style✔
# Choose a specific C++ coding style✔
# Use C++17 standard✔
# Use C++17 standard✔
# Create a general Mesh Format which supports both 3D and 4D (and higher dimensions). This will be helpful for Linear interpolation.
# Create Mesh Unstructured Grid class (as VTk's) to facilitate IOs and Linear Interpolation for N Dimensions
# 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 creating a templated PODM wrapper✔
Line 13: Line 13:
## Remove setImage* functions and create setInputImage(ImageType::Pointer, string)✔
## Remove setImage* functions and create setInputImage(ImageType::Pointer, string)✔
## Remove GetShortFileName✔
## Remove GetShortFileName✔
## Create a Mesh Unstructured Grid to facilitate Linear Interpolation in N-Dimensions
## 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)
## Keep only useful Defines
## Keep only useful Defines

Revision as of 17:34, 3 November 2019

PODM Refactoring

  1. Find a Predicates library to replace CGAL library. A possible solution is Predicate Construction Kit and its code.
  2. Remove Boost library and replace with std::thread, ask Christos for Barrier.
  3. Remove VTK library
  4. Update ITK
  5. Choose a specific C++ coding style✔
  6. Use C++17 standard✔
  7. Create Mesh Unstructured Grid class (as VTk's) to facilitate IOs and Linear Interpolation for N Dimensions
  8. 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 creating a templated PODM wrapper✔
    2. Decouple Args from PODM✔
    3. Create setArguments function✔
    4. Remove setImage* functions and create setInputImage(ImageType::Pointer, string)✔
    5. Remove GetShortFileName✔
    6. Template the common code of each PODM for 3-4 dimensions (or even more or less)
    7. Keep only useful Defines
  9. 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,
        2. Algorithm, Software, and Hardware Optimizations for Delaunay Mesh Generation on Simultaneous Multithreaded Architectures
    2. For Predicates:
      1. Based on ACCELERATING THE EXACT EVALUATION OF GEOMETRIC PREDICATES WITH GPUS
      2. Based on GPredicates - GPU Implementation of Robust and Adaptive Floating-Point Predicates for Computational Geometry
  10. Decouple Contentions managers and Load Balancing from the Meshing Procedure.
  11. Add PDR
  12. Add Smoothing