Table of Contents
Shortcuts

# ExternalStream

class torch.cuda.ExternalStream(stream_ptr, device=None, **kwargs)

  Wrapper around an externally allocated CUDA stream.

  This class is used to wrap streams allocated in other libraries in order to facilitate data exchange and multi-library interactions.

  Note

  This class doesn’t manage the stream life-cycle, it is the user responsibility to keep the referenced stream alive while this class is being used.

  Parameters:

    - stream_ptr (int) – Integer representation of the cudaStream_t value. allocated externally.

    - device (torch.device or int, optional) – the device where the stream was originally allocated. if device is specified incorrectly, subsequent launches using this stream may fail.

  query()

    Checks if all the work submitted has been completed.

    Returns:

      A boolean indicating if all kernels in this stream are completed.

  record_event(event=None)

    Records an event.

    Parameters:

      event (torch.cuda.Event, optional) – event to record. If not given, a new one will be allocated.

    Returns:

      Recorded event.

  synchronize()

    Wait for all the kernels in this stream to complete.

    Note

    This is a wrapper around `cudaStreamSynchronize()`: see CUDA Stream documentation for more info.

  wait_event(event)

    Makes all future work submitted to the stream wait for an event.

    Parameters:

      event (torch.cuda.Event) – an event to wait for.

    Note

    This is a wrapper around `cudaStreamWaitEvent()`: see CUDA Stream documentation for more info.

    This function returns without waiting for `event`: only future operations are affected.

  wait_stream(stream)

    Synchronizes with another stream.

    All future work submitted to this stream will wait until all kernels submitted to a given stream at the time of call complete.

    Parameters:

      stream (Stream) – a stream to synchronize.

    Note

    This function returns without waiting for currently enqueued kernels in `stream`: only future operations are affected.

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.