10000 Half preconditioner, multigrid, log, and reorder by yhmtsai · Pull Request #1713 · ginkgo-project/ginkgo · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

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

Merged
merged 15 commits into from
Dec 3, 2024
Merged

Conversation

yhmtsai
Copy link
Member
@yhmtsai yhmtsai commented Oct 25, 2024

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.

@yhmtsai yhmtsai self-assigned this Oct 25, 2024
@ginkgo-bot ginkgo-bot added reg:testing This is related to testing. type:solver This is related to the solvers type:preconditioner This is related to the preconditioners type:reordering This is related to the matrix(LinOp) reordering type:multigrid This is related to multigrid mod:all This touches all Ginkgo modules. labels Oct 25, 2024
@MarcelKoch MarcelKoch self-requested a review October 28, 2024 14:46
@yhmtsai yhmtsai force-pushed the half_factorization branch from 3db59fd to cd9677a Compare October 28, 2024 16:12
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch from 6d2f717 to e3bccda Compare October 28, 2024 16:12
Copy link
Member
@MarcelKoch MarcelKoch left a 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.

@yhmtsai yhmtsai force-pushed the half_factorization branch from cd9677a to 5e5cd03 Compare October 28, 2024 17:19
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch 3 times, most recently from 240e12f to 3537d26 Compare October 29, 2024 09:17
@yhmtsai yhmtsai force-pushed the half_factorization branch 2 times, most recently from c276034 to bbefde6 Compare October 29, 2024 18:21
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch from 3537d26 to 046707c Compare October 29, 2024 18:21
@yhmtsai yhmtsai mentioned this pull request Oct 30, 2024
12 tasks
@MarcelKoch MarcelKoch added this to the Ginkgo 1.9.0 milestone Oct 30, 2024
@MarcelKoch MarcelKoch requested a review from pratikvn October 30, 2024 14:08
Copy link
Member
@pratikvn pratikvn left a 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>) {
Copy link
Member

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 ?

Copy link
Member Author

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.

@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch from 046707c to 82793ee Compare November 4, 2024 14:24
@yhmtsai yhmtsai force-pushed the half_factorization branch 2 times, most recently from 72d9d50 to 88967e6 Compare November 4, 2024 18:15
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch 2 times, most recently from 1e9688c to de5c2a7 Compare November 5, 2024 18:03
@yhmtsai yhmtsai force-pushed the half_factorization branch from 88967e6 to e667ec0 Compare November 5, 2024 18:03
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch from de5c2a7 to c443777 Compare November 7, 2024 14:40
@yhmtsai yhmtsai force-pushed the half_factorization branch from e667ec0 to c32201d Compare November 7, 2024 14:40
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch 2 times, most recently from f3137db to 6758e9f Compare November 30, 2024 01:30
@yhmtsai yhmtsai force-pushed the half_factorization branch 2 times, most recently from b58712a to 53a1d80 Compare November 30, 2024 18:36
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch 3 times, most recently from 4a4ac85 to 2b87f17 Compare December 2, 2024 15:36
@yhmtsai yhmtsai added 1:ST:ready-to-merge This PR is ready to merge. 1:ST:skip-full-test labels Dec 3, 2024
@yhmtsai yhmtsai force-pushed the half_factorization branch from 53a1d80 to e0e42b0 Compare December 3, 2024 01:24
Base automatically changed from half_factorization to develop December 3, 2024 01:26
@yhmtsai yhmtsai force-pushed the half_prec_mg_reorder branch from 2b87f17 to 306d06a Compare December 3, 2024 01:29
@yhmtsai yhmtsai merged commit c35ea25 into develop Dec 3, 2024
7 of 11 checks passed
@yhmtsai yhmtsai deleted the half_prec_mg_reorder branch December 3, 2024 01:30
@ginkgo-bot
Copy link
Member

Error: PR already merged!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1:ST:ready-to-merge This PR is ready to merge. 1:ST:skip-full-test mod:all This touches all Ginkgo modules. reg:testing This is related to testing. type:multigrid This is related to multigrid type:preconditioner This is related to the preconditioners type:reordering This is related to the matrix(LinOp) reordering type:solver This is related to the solvers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0