Event

class paddle.device. Event ( device=None, enable_timing=False, blocking=False, interprocess=False ) [源代码]

event 的句柄。

参数

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

  • enable_timing (bool,可选) - event 是否需要统计时间。默认值为 False。

  • blocking (bool,可选) - wait()函数是否被阻塞。默认值为 False。

  • interprocess (bool,可选) - event 是否能在进程间共享。默认值为 False。

返回

None

代码示例

# required: custom_device
import paddle

paddle.set_device('custom_cpu')
e1 = paddle.device.Event()
e2 = paddle.device.Event('custom_cpu')
e3 = paddle.device.Event('custom_cpu:0')
e4 = paddle.device.Event(paddle.CustomPlace('custom_cpu', 0))

方法

record(stream=None)

记录 event 到给定的 stream。

参数

  • stream (paddle.device.Stream,可选) - stream 的句柄。如果为 None,stream 为当前的 stream。默认值为 None。

代码示例

# required: custom_device
import paddle

paddle.set_device('custom_cpu')
e = paddle.device.Event()
e.record()

s = paddle.device.Stream()
e.record(s)

query()

查询 event 的状态。

返回

一个 boolean 变量,用于标识当前 event 获取的所有任务是否被完成。

代码示例

# required: custom_device
import paddle

paddle.set_device('custom_cpu')
e = paddle.device.Event()
e.record()
e.query()

synchronize()

等待当前 event 完成。

代码示例

# required: custom_device
import paddle

paddle.set_device('custom_cpu')
e = paddle.device.Event()
e.record()
e.synchronize()