Stream

class paddle.device. Stream ( device=None, priority=None, blocking=False ) [源代码]

custom device stream 的句柄。

参数

  • device (paddle.CUDAPlace|paddle.CustomPlace|str) - 希望分配 stream 的设备或设备类型。如果为 None,则为当前期望的 place。默认值为 None。

  • priority (int|None,可选) - stream 的优先级。优先级可以为 1(高优先级)或者 2(正常优先级)。如果优先级为 None,优先级为 2(正常优先级)。默认值为 None。

  • blocking (bool|None,可选) - stream 是否同步执行。默认值为 False。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s1 = paddle.device.Stream()
>>> s2 = paddle.device.Stream('custom_cpu')
>>> s3 = paddle.device.Stream('custom_cpu:0')
>>> s4 = paddle.device.Stream(paddle.CustomPlace('custom_cpu', 0))

方法

record_event(event=None)

标记一个 event 到当前 stream 中。

参数

  • event (paddle.device.Event) - 要标记的 event。如果 event 为 None,新建一个 event。默认值为 None。

返回

被标记的 event。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s = paddle.device.Stream()
>>> e1 = s.record_event()

>>> e2 = paddle.device.Event()
>>> s.record_event(e2)

wait_event(event)

使所有将来提交到 stream 的任务等待 event 中已获取的任务。

参数

  • event (paddle.device.Event) - 要等待的 event。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s1 = paddle.device.Stream()
>>> s2 = paddle.device.Stream()
>>> e = paddle.device.Event()
>>> e.record(s1)
>>> s2.wait_event(e)

wait_stream(stream)

和给定的 stream 保持同步。

参数

  • stream (paddle.device.Stream) - 要同步的 stream。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s1 = paddle.device.Stream()
>>> s2 = paddle.device.Stream()
>>> s1.wait_stream(s2)

record_event(event=None)

记录给定的 event。

参数

  • event (paddle.device.Event) - 要记录的 event,如果为 None,则新建一个 event。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s = paddle.device.Stream()
>>> e1 = s.record_event()

>>> e2 = paddle.device.Event()
>>> s.record_event(e2)

query()

返回 stream 中所有的操作是否完成的状态。

返回

一个 boolean 值。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s = paddle.device.Stream()
>>> s.query()

synchronize()

等待所有的 stream 的任务完成。

代码示例

>>> import paddle

>>> paddle.set_device('custom_cpu')
>>> s = paddle.device.Stream()
>>> s.synchronize()