-
Notifications
You must be signed in to change notification settings - Fork 96
Half preconditioner, multigrid, log, and reorder #1713
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
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
f3137db
to
6758e9f
Compare
b58712a
to
53a1d80
Compare
4a4ac85
to
2b87f17
Compare
53a1d80
to
e0e42b0
Compare
Co-authored-by: Marcel Koch <marcel.koch@kit.edu>
…i_kernels to make them work with single
2b87f17
to
306d06a
Compare
Error: PR already merged! |
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 and log are not much, so I include them as well.