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

Tpetra: Add nonblocking MPI-global GEMV #1169

Closed
mhoemmen opened this issue Mar 22, 2017 · 4 comments
Closed

Tpetra: Add nonblocking MPI-global GEMV #1169

mhoemmen opened this issue Mar 22, 2017 · 4 comments
Assignees
Labels
CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. pkg: Tpetra stage: in progress Work on the issue has started TpetraRF

Comments

@mhoemmen
Copy link
Contributor

mhoemmen commented Mar 22, 2017

@trilinos/tpetra

A collaborator would like to implement Pipelined GMRES (see #748 for comparison). This calls for a nonblocking MPI-global GEMV in order to implement the classical Gram-Schmidt projection step. The implementation of Tpetra::idot (see #1013) currently supports this use case, but does not optimize the intraprocess dense matrix-vector product (GEMV). There are two issues:

  1. Tpetra::idot does not call KokkosBlas::gemv for that case. Instead, it rolls its own kernel. This is likely to be slow for multivectors with many columns, and it may even run out of scratch memory on the GPU (which uses scratch for intermediate reduction results).
  2. ( KokkosBlas: Add GEMV that wraps BLAS (and cuBLAS) kokkos/kokkos-kernels#16 ) KokkosBlas::gemv does not call the BLAS or cuBLAS (if appropriate). Instead, it rolls its own kernel, which has the same issues as the kernel that Tpetra::idot uses.
@mhoemmen mhoemmen added this to the Tpetra-FY17-Q4 milestone Mar 22, 2017
@mhoemmen
Copy link
Contributor Author

Note that this GEMV might be a little different than a BLAS GEMV, if Tpetra::MultiVector::dot_type != Tpetra::MultiVector::impl_scalar_type (in the Stokhos case, for example). We're really computing a bunch of dot products at once. This means that the intermediate terms in the sum have type dot_type, not impl_scalar_type.

This may be relevant to @etphipp 's interests, though please don't feel obligated to comment; I just want to make sure you know what's going on.

@mhoemmen
Copy link
Contributor Author

mhoemmen commented Jul 31, 2017

My recent commit db0e10c adds a process-local GEMV wrapper. I still need to use this in dot products. Note that Tpetra::idot actually implements what we want, but it might not be efficient on GPUs yet; it should call the new GEMV wrappers instead of dispatching to a custom kernel in that case.

@mhoemmen mhoemmen removed this from the Tpetra-FY17-Q4 milestone Oct 13, 2017
@kddevin kddevin added this to Backlog in Tpetra Oct 26, 2017
@crtrott crtrott added this to Backlog in TpetraRF FY18 Oct 26, 2017
@github-actions
Copy link

This issue has had no activity for 365 days and is marked for closure. It will be closed after an additional 30 days of inactivity.
If you would like to keep this issue open please add a comment and remove the MARKED_FOR_CLOSURE label.
If this issue should be kept open even with no activity beyond the time limits you can add the label DO_NOT_AUTOCLOSE.

@github-actions github-actions bot added the MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. label Feb 20, 2021
@github-actions
Copy link

This issue was closed due to inactivity for 395 days.

@github-actions github-actions bot added the CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. label Mar 24, 2021
TpetraRF FY18 automation moved this from Backlog to Done Mar 24, 2021
Tpetra automation moved this from Backlog to Done Mar 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLOSED_DUE_TO_INACTIVITY Issue or PR has been closed by the GitHub Actions bot due to inactivity. MARKED_FOR_CLOSURE Issue or PR is marked for auto-closure by the GitHub Actions bot. pkg: Tpetra stage: in progress Work on the issue has started TpetraRF
Projects
Tpetra
  
Done
TpetraRF FY18
  
Done
Development

No branches or pull requests

2 participants