Internal:GPU Usage

From crtc.cs.odu.edu
Revision as of 18:25, 27 October 2019 by Spyridon97 (talk | contribs)
Jump to navigation Jump to search

PODM Refactoring

  1. Find a Predicates library to replace CGAL library. A possible solution is Predicate Construction Kit and its code.
  2. Update Boost, ITK, VTK libraries
  3. Choose a specific C++ coding style✔
  4. Use C++17 standard✔
  5. Create a general Mesh Format which supports both 3D and 4D (and higher dimensions). This will be helpful for Linear interpolation.
  6. 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
  7. 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
  8. Decouple Contentions managers and Load Balancing from the Meshing Procedure.
  9. Add PDR
  10. Add Smoothing