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

stream: add stream synchronize to non-stream operations #7023

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Commits on Jun 5, 2024

  1. mpl: add MPL_gpu_stream_synchronize

    Useful for GPU stream based MPI extensions.
    hzhou committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    36ade32 View commit details
    Browse the repository at this point in the history
  2. python/binding_c: Add streamsync directive

    Extend the functionality of MPIX stream by allowing passing a stream
    communication with local gpu stream to regular MPI functions. The
    semantics is to run an implicit gpu stream synchronize before the MPI
    operation. This is semantically serializing the MPI operation with the
    GPU stream, albeit in a heavy handed way.
    hzhou committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    fbee3f1 View commit details
    Browse the repository at this point in the history
  3. binding/c: add stream synchronize in pt2p2 and coll

    If a stream communicator is backed with a gpu stream and we call regular
    pt2pt and collective functions instead of the enqueue functions, we
    should run streamsynchronize to ensure the buffer is cleared for the
    pt2pt and coll operations.
    
    There is no need to stream synchronize for completion functions, i.e.
    Test and Wait, since the buffer safety is asserted by the nonblocking
    semantics and offloading calls issued after the completion function are
    safe to use the buffer.
    
    Amend: add rma operations too. Following the same reason, we don't need
    stream synchronize for Win_fence, Win_lock, etc. The RMA synchronize
    calls are essentially the host-side counterpart to stream synchronize.
    hzhou committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    a10c9e5 View commit details
    Browse the repository at this point in the history