-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add kernel callable dense LA solvers for small systems. #3287
Conversation
@dkachuma this should be useful for the PVT module too. |
I feel like these would fit in better in LvArray. I mean it's already got the functions for solving 2x2 and 3x3 eigenvalue and inverse problems, why shouldn't the linear system solvers live there as well? Where ever they wind up there should be unit tests as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These optimizations are not guaranteed to be done by the compiler.
we should have a plan for a central location for all operations of this type. It was in LvArray
. If you want to move these out of LvArray
we should discuss that. I would push for a kernel callable LA package separate from GEOS
and LvArray
, but that is just how I roll.
Yes, linear algebra operations, including tensor operations, should live in the same place.
I agree with @rrsettgast . Linear algebra and tensor operations should be a package independent of |
isn't there a kernel callable set of dense linear algebra functions? |
There are many libraries. However, our need is to solve very small problems in each thread. @corbett5 do you have any experience with using Eigen in a device (CUDA) kernel? |
Breaking out all the kernel callable tensor operations in LvArray into a new repo sounds fine to me. @castelletto1 no I have not tried Eigen. I know that they have device compatible compile time fixed size 2x2 and 3x3 eigen decompositions, but I'm not sure for example if they have a general suite of device compatible fixed size routines. If they do I doubt they have the support for a static 2x2 and 3x3 symmetric format. Using Eigen would also lock us into the pattern of always performing operations on local variables, where as for example with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #3287 +/- ##
===========================================
+ Coverage 56.36% 56.45% +0.09%
===========================================
Files 1056 1059 +3
Lines 89233 89444 +211
===========================================
+ Hits 50296 50498 +202
- Misses 38937 38946 +9 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
src/coreComponents/denseLinearAlgebra/unitTests/testDenseLASolvers.cpp
Outdated
Show resolved
Hide resolved
Added unitTests. This should be good to go for now. |
…EOS into feature/cusini/denseLASolvers
No description provided.