-
Notifications
You must be signed in to change notification settings - Fork 88
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
Half preconditioner, multigrid, and reorder #1713
base: half_factorization
Are you sure you want to change the base?
Conversation
3db59fd
to
cd9677a
Compare
6d2f717
to
e3bccda
Compare
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.
Mostly LGTM. I would suggest to change the default threshold parameter for MC64.
Additionally, I would prefer to add some explanaitions as to why tests are skipped.
cd9677a
to
5e5cd03
Compare
240e12f
to
3537d26
Compare
c276034
to
bbefde6
Compare
3537d26
to
046707c
Compare
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.
Same note here. If we are skipping tests or unable to solve/compute with half with the correct result, then I think we should not support that algorithm with half.
const experimental::distributed::Vector<ValueType>, | ||
experimental::distributed::Vector<ValueType>>; | ||
f(dynamic_cast<type*>(linop), std::forward<Args>(args)...); | ||
if constexpr (std::is_same_v<remove_complex<ValueType>, half>) { |
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.
Is there a reason we dont support half with distributed ? Or will it come in a future PR ?
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.
half precision transfer is trivial but the reduce operation and one side accumulation is not trivial.
I have tried adding the custom MPI_Op
to support reduce on custom type, which works.
However, one side accumulation does not allow any non-predefined operation.
We will only support half in this case.
Or, use relatively new compiler and MPI standard with its extension, so they can support half natively.
It will be future PR anyways. It might not be in this release, either.
046707c
to
82793ee
Compare
72d9d50
to
88967e6
Compare
1e9688c
to
de5c2a7
Compare
88967e6
to
e667ec0
Compare
de5c2a7
to
c443777
Compare
e667ec0
to
c32201d
Compare
c443777
to
8f47eee
Compare
257585d
to
eb14467
Compare
8f47eee
to
3329070
Compare
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.
Some things on remaining tolerance levels, but otherwise LGTM
5936c6c
to
55be6ed
Compare
4a4488d
to
7568854
Compare
Co-authored-by: Marcel Koch <[email protected]>
7568854
to
d68a589
Compare
55be6ed
to
1af5199
Compare
This PR adds the preconditioner, multigrid, and reorder with half precision support.
move multigrid here because multigrid require direct from #1712 and jacobi here
the reorder is not much, so I include them as well.