Skip to content
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

TridiagSolver (dist): STEP3 reduce GEMM step computational cost #998

Merged
merged 5 commits into from
Dec 12, 2023

Conversation

albestro
Copy link
Collaborator

@albestro albestro commented Sep 29, 2023

Close #916

This PR is the last step of the Distributed Tridiagonal Solver optimization in order to reduce GEMM cost.

After all the preliminary work to make the tridiagonal work with a well-shaped matrix of eigenvectors, now it is possible to exploit that to actually reduce the GEMM cost.

Main changes:

  • compute "geometry" of the reduced GEMM
  • reduce the GEMM step + just copy deflated part
  • remove fill1 from rank1 (it was for making the gemm copying deflated eigenvalues, but now)

@albestro albestro added this to the Optimizations milestone Sep 29, 2023
@albestro albestro self-assigned this Sep 29, 2023
@albestro albestro changed the base branch from master to alby/trisolver-dist-opt-step2-multi September 29, 2023 09:20
@albestro albestro force-pushed the alby/trisolver-dist-opt-step2-multi branch from a36baa8 to 05d4760 Compare September 29, 2023 10:14
ws.e0);
ex::start_detached(
ex::when_all(std::move(k_lc), std::move(n_udl), row_task_chain(), col_task_chain()) |
ex::transfer(dlaf::internal::getBackendScheduler<Backend::MC>()) |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self: since it is going to schedule work, it is better to give it high priority

albestro added a commit that referenced this pull request Oct 16, 2023
Develop: TridiagSolver (dist): STEP1 rank-independent sort of eigenvalues by column type for rank1 solver (#967)
Develop: TridiagSolver (dist): STEP2 Make rank1 work just on local non-deflated eigenvectors (#996)
Develop: TridiagSolver (dist): STEP2b Make rank1 work just on local non-deflated eigenvectors (multi-threaded) (#997)
Develop: TridiagSolver (dist): STEP3 reduce GEMM step computational cost (#998)
@albestro albestro force-pushed the alby/trisolver-dist-opt-step2-multi branch from 05d4760 to fffad13 Compare December 4, 2023 15:17
@albestro albestro force-pushed the alby/trisolver-dist-opt-step3 branch from 4abd8d7 to 62c1cbe Compare December 4, 2023 15:17
@albestro albestro force-pushed the alby/trisolver-dist-opt-step2-multi branch from fffad13 to a538c2e Compare December 12, 2023 08:16
@albestro albestro force-pushed the alby/trisolver-dist-opt-step3 branch 2 times, most recently from 55cbba0 to 887cc16 Compare December 12, 2023 08:26
@albestro albestro force-pushed the alby/trisolver-dist-opt-step3 branch from 887cc16 to 8817224 Compare December 12, 2023 09:54
@albestro albestro force-pushed the alby/trisolver-dist-opt-step2-multi branch from 6c4a7b5 to ec9ebf6 Compare December 12, 2023 09:54
Base automatically changed from alby/trisolver-dist-opt-step2-multi to master December 12, 2023 12:42
@albestro albestro force-pushed the alby/trisolver-dist-opt-step3 branch from 8817224 to a824d40 Compare December 12, 2023 15:34
@albestro albestro marked this pull request as ready for review December 12, 2023 16:04
@albestro
Copy link
Collaborator Author

cscs-ci run

@rasolca rasolca merged commit a48055c into master Dec 12, 2023
4 checks passed
@rasolca rasolca deleted the alby/trisolver-dist-opt-step3 branch December 12, 2023 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Reduce gemm complexity in the tridiagonal eigensolver
3 participants