Level-Set factorization and solve for ILU0 on GPU - #1541
Conversation
tested but not benchmarked adds new fields storing the level sets adds new gpu kernel for parallel factorization adds new kernels for lower and upper triangular solves matches regular ilu0 on test matrix (should do more validation!)
fixes discrepancy with existing ilu0 implementation
…olve Level-Set factorization and solve for ILU0 on GPU
|
@multitalentloes, this looks good and ready to be merged! Thanks! I just added a couple of fixes to avoid memory leaks and updated the code style a bit. |
|
Thanks for the fixes and improved coding-style! |
rfalgout
left a comment
There was a problem hiding this comment.
This looks good to me. I did not try to follow the algorithmic details. @liruipeng or @oseikuffuor1 should take a closer look. Thanks!
|
@liruipeng @oseikuffuor1 could you take a look at this PR? Thanks! |
# Conflicts: # src/parcsr_ls/par_ilu_setup_device.c
oseikuffuor1
left a comment
There was a problem hiding this comment.
@victorapm overall, this looks good to me. However, I think some multi precision functionality might be missing or incomplete (particularly for the GPU case). The diff also seems to be from ilu-dev and not master so perhaps these issues are already resolved in ilu-dev. As long as it passes the mup_check scripts cleanly, it is fine with me. Thanks!
|
Thanks @oseikuffuor1 ! That's right, the plan is to add incremental capabilities to |
From #1539
Contributes ILU0 factorization and level-set based solves for the work in #1470
I have stored some extra pointers and values needed for the graph partitioning, hopefully these are in the right place. The test on the Laplacian gives identical results to the existing ILU0 on CPU (and perturbing the implementation a little bit gives the wrong answer as a sanity check for running the code). No benchmarks of other matrices as of yet.