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

mpix: gpu stream aware extensions #5905

Closed
wants to merge 7 commits into from
Closed

Conversation

hzhou
Copy link
Contributor

@hzhou hzhou commented Mar 24, 2022

Pull Request Description

Add MPIX_Send_streamMPIX_Send_enqueue and MPIX_Recv_streamMPIX_Recv_enqueue.

NOTE: This PR works for the attached test code. But it will not work in general because it doesn't separate traffic. When we invoke progress from an enqueued stream, the progress my invoke operations from non-stream traffic, which may use the GPU, and, e.g. CUDA, will error out.

Reference discussions on MPIX_Stream: #5908

[skip warnings]

Author Checklist

  • Provide Description
    Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
  • Commits Follow Good Practice
    Commits are self-contained and do not do two things at once.
    Commit message is of the form: module: short description
    Commit message explains what's in the commit.
  • Passes All Tests
    Whitespace checker. Warnings test. Additional tests via comments.
  • Contribution Agreement
    For non-Argonne authors, check contribution agreement.
    If necessary, request an explicit comment from your companies PR approval manager.

@hzhou hzhou force-pushed the 2203_stream branch 2 times, most recently from c9ebfa2 to f84418c Compare March 24, 2022 18:04
@hzhou
Copy link
Contributor Author

hzhou commented Mar 24, 2022

cc @jdinan

@hzhou hzhou marked this pull request as draft March 24, 2022 22:29
hzhou added 2 commits March 31, 2022 13:24
We only implemented the cuda version for now, which simply calls
cudaLaunchHostFunc.
Add MPIR_Typerep_pack_stream and MPIR_Typerep_unpack_stream as wrappers
for yaksa_pack_stream and yaksa_unpack_stream.
hzhou added 4 commits March 31, 2022 13:49
In the stream callback function we can't use gpu APIs reliably, use
MPIR_Typerep_pack_stream and MPIR_Typerep_unpack_stream so the callback
function only access CPU communications.
If the buffer isn't device buffer, we can directly enqueue the send/recv
operations. This can later extend to cases when lower layer can handle
GPU communications inside host function callbacks.
@hzhou
Copy link
Contributor Author

hzhou commented Apr 1, 2022

test:mpich/ch4/gpu/ofi

@hzhou
Copy link
Contributor Author

hzhou commented Apr 1, 2022

test:mpich/ch4/gpu/ofi

@hzhou
Copy link
Contributor Author

hzhou commented Apr 27, 2022

Close in favor of stream extension.

@hzhou hzhou closed this Apr 27, 2022
@hzhou hzhou deleted the 2203_stream branch November 27, 2024 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant