Stream

class paddle.device.cuda. Stream ( device=None, priority=None )

CUDA stream的句柄。

参数:
  • device (paddle.CUDAPlace()|int|None, 可选) - 希望分配stream的设备。如果是None或者负数,则设备为当前的设备。如果是正数,则必须小于设备的个数。默认值为None。

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

代码示例

# required: gpu
import paddle
s1 = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
s2 = paddle.device.cuda.Stream(0, 1)
s3 = paddle.device.cuda.Stream()
wait_event ( event )

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

参数:
  • event (CUDAEvent) - 要等待的event。

代码示例

# required: gpu
import paddle
s = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
event = paddle.device.cuda.Event()
s.wait_event(event)
wait_stream ( stream )

和给定的stream 保持同步。

参数:
  • stream (CUDAStream) - 要同步的stream。

代码示例

# required: gpu
import paddle
s1 = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
s2 = paddle.device.cuda.Stream(0, 1)
s1.wait_stream(s2)
query ( )

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

返回: 一个boolean 值。

代码示例

# required: gpu
import paddle
s = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
is_done = s.query()
synchronize ( )

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

代码示例

# required: gpu
import paddle
s = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
s.synchronize()
record_event ( event=None )

标记一个CUDA event 到当前stream中。

参数:
  • event (CUDAEvent,可选) - 要标记的event。如果event 为None,新建一个event。默认值为None。

返回: 被标记的event。

代码示例

# required: gpu
import paddle
s = paddle.device.cuda.Stream(paddle.CUDAPlace(0), 1)
event = s.record_event()