latest (dev)
Copy
Latest development documentation · Updated 2026-10-15
tensorplay.cuda.streams API
Classes 3
Event
classFull reference ↗- class tensorplay.cuda.streams.Event(device=None, *, enable_timing=False, blocking=False, interprocess=False)[source]
Query and record Stream status to identify or control dependencies across Stream and measure timing.
- Parameters:
device (
tensorplay.device, optional) – the desired device for the Event. If not given, the current the relevant documentation type will be used.enable_timing (bool, optional) – indicates if the event should measure time (default:
False)blocking (bool, optional) – if
True,wait()will be blocking (default:False)interprocess (bool) – if
True, the event can be shared between processes (default:False)
Warning
Both blocking and interprocess are not supported right now and are noops.
- Returns:
An tensorplay.Event object.
- Return type:
Example:
>>> event = tensorplay.Event() >>> e_cuda = tensorplay.Event(device='cuda')- elapsed_time(end_event) float[source]
Returns the elapsed time in milliseconds between when this event and the
end_eventare each recorded viatensorplay.Stream.record_event().- Parameters:
end_event (
tensorplay.Event) – The ending event has been recorded.- Returns:
Time between starting and ending event in milliseconds.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> e1_cuda = s_cuda.record_event() >>> e2_cuda = s_cuda.record_event() >>> ms = e1_cuda.elapsed_time(e2_cuda)
- classmethod from_ipc_handle(device, handle)[source]
Reconstruct an event from an IPC handle on the given device.
- ipc_handle()[source]
Return an IPC handle of this event.
- query() bool[source]
Check if the stream where this event was recorded already moved past the point where the event was recorded. Always returns
Trueif the Event was not recorded.- Returns:
A boolean indicating if all work currently captured by event has completed.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.query() True
- record(stream=None) None[source]
Record the event in a given stream. The stream’s device must match the event’s device. This function is equivalent to
stream.record_event(self).- Parameters:
stream (
tensorplay.Stream, optional) – A stream to be recorded. If not given, the current stream will be used.
Example:
>>> e_cuda = tensorplay.Event(device='cuda') >>> e_cuda.record()
- synchronize() None[source]
Wait for the event to complete. This prevents the CPU thread from proceeding until the event completes.
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s_cuda.record_event() >>> e_cuda.synchronize()
- wait(stream=None) None[source]
Make all future work submitted to the given stream wait for this event.
- Parameters:
stream (
tensorplay.Stream, optional) – A stream to synchronize. If not given, the current stream will be used.
Example:
>>> s1_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s1_cuda.record() >>> e_cuda.wait(s2)
ExternalStream
classFull reference ↗- class tensorplay.cuda.streams.ExternalStream(stream_ptr, device=None, **kwargs)[source]
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 (tensorplay.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() bool
Check if all the work submitted has been completed.
- Returns:
A boolean indicating if all kernels in this stream are completed.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> s_cuda.query() True
- record_event(event) Event
Record an event. En-queuing it into the Stream to allow further synchronization from the current point in the FIFO queue.
- Parameters:
event (
tensorplay.Event, optional) – event to record. If not given, a new one will be allocated.- Returns:
Recorded event.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s_cuda.record_event()
- synchronize() None
Wait for all the kernels in this stream to complete.
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> s_cuda.synchronize()
- wait_event(event) None
Make all future work submitted to the stream wait for an event.
- Parameters:
event (
tensorplay.Event) – an event to wait for.
Example:
>>> s1_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s1_cuda.record_event() >>> s2_cuda.wait_event(e_cuda)
- wait_stream(stream) None
Synchronize with another stream. All future work submitted to this stream will wait until all kernels already submitted to the given stream are completed.
- Parameters:
stream (
tensorplay.Stream) – a stream to synchronize.
Example:
>>> s1_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda.wait_stream(s1_cuda)
Stream
classFull reference ↗- class tensorplay.cuda.streams.Stream(device, *, priority) Stream[source]
An in-order queue of executing the respective tasks asynchronously in first in first out (FIFO) order. It can control or synchronize the execution of other Stream or block the current host thread to ensure the correct task sequencing. It supports with statement as a context manager to ensure the operators within the with block are running on the corresponding stream.
See in-depth description of the CUDA behavior at CUDA semantics for details on the exact semantic that applies to all devices.
- Parameters:
device (
tensorplay.device, optional) – the desired device for the Stream. If not given, the current the relevant documentation type will be used.priority (int, optional) – priority of the stream, should be 0 or negative, where negative numbers indicate higher priority. By default, streams have priority 0.
- Returns:
An tensorplay.Stream object.
- Return type:
Example:
>>> with tensorplay.Stream(device='cuda') as s_cuda: >>> a = tensorplay.randn(10, 5, device='cuda') >>> b = tensorplay.randn(5, 10, device='cuda') >>> c = tensorplay.mm(a, b)- query() bool[source]
Check if all the work submitted has been completed.
- Returns:
A boolean indicating if all kernels in this stream are completed.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> s_cuda.query() True
- record_event(event) Event[source]
Record an event. En-queuing it into the Stream to allow further synchronization from the current point in the FIFO queue.
- Parameters:
event (
tensorplay.Event, optional) – event to record. If not given, a new one will be allocated.- Returns:
Recorded event.
- Return type:
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s_cuda.record_event()
- synchronize() None[source]
Wait for all the kernels in this stream to complete.
Example:
>>> s_cuda = tensorplay.Stream(device='cuda') >>> s_cuda.synchronize()
- wait_event(event) None[source]
Make all future work submitted to the stream wait for an event.
- Parameters:
event (
tensorplay.Event) – an event to wait for.
Example:
>>> s1_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda = tensorplay.Stream(device='cuda') >>> e_cuda = s1_cuda.record_event() >>> s2_cuda.wait_event(e_cuda)
- wait_stream(stream) None[source]
Synchronize with another stream. All future work submitted to this stream will wait until all kernels already submitted to the given stream are completed.
- Parameters:
stream (
tensorplay.Stream) – a stream to synchronize.
Example:
>>> s1_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda = tensorplay.Stream(device='cuda') >>> s2_cuda.wait_stream(s1_cuda)
Help improve this page
Found an error, an unclear step, or a missing example?

