Use Kokkos:Parallel in SmootherTake and Prepare COO/CSR Matrix#239
Use Kokkos:Parallel in SmootherTake and Prepare COO/CSR Matrix#239julianlitz wants to merge 18 commits intomainfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #239 +/- ##
==========================================
+ Coverage 90.72% 90.80% +0.08%
==========================================
Files 86 86
Lines 9473 9556 +83
==========================================
+ Hits 8594 8677 +83
Misses 879 879 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@EmilyBourne If you think that *innerBoundaryMatrix_ptr doesnt work on GPU, then we probably need to delete my custom matrix copy constructor/assignment of the Coo/Csr matrix. |
I'm already working on this. I renamed to |
|
I think its better to mark the copy constructor as = delete so we dont mess things up |
That was my first step. But it is impossible to delete the copy constructor and have things working on GPU as it is used to copy data to the GPU |
|
Ah yes you are right |
|
@EmilyBourne Claude suggested that the issue was the use of the member Vector instead of AllocatableVector. I think that in
we need to use AllocatableVector as the private member. "Why Kokkos The problem was the The Switching the private members to removes the |
I disagree with Claude. KOKKOS_DEFAULTED_FUNCTION BatchedTridiagonalSolver(const BatchedTridiagonalSolver&) = default;should be sufficient to create a |
EmilyBourne
left a comment
There was a problem hiding this comment.
I've just noticed something that I missed in #162. You are using KOKKOS_LAMBDA in non-static class functions. This will not work on GPU.
See https://kokkos.org/kokkos-core-wiki/API/core/macros-special/host_device_macros.html#kokkos-lambda
When creating lambdas inside of class member functions you may need to use KOKKOS_CLASS_LAMBDA instead.
The copy-constructor also needs to be marked with KOKKOS_DEFAULTED_FUNCTION
Merge Request - GuideLine Checklist
Guideline to check code before resolve WIP and approval, respectively.
As many checkboxes as possible should be ticked.
Checks by code author:
Always to be checked:
If functions were changed or functionality was added:
If new functionality was added:
If new third party software is used:
If new mathematical methods or epidemiological terms are used:
Checks by code reviewer(s):