評價此頁

Event#

class torch.cuda.Event(enable_timing=False, blocking=False, interprocess=False, external=False)[源]#

CUDA 事件的包裝器。

CUDA 事件是用於監視裝置進度、精確測量時間以及同步 CUDA 流的同步標記。

底層 CUDA 事件會在事件首次記錄或匯出到另一個程序時進行惰性初始化。建立後,只有同一裝置上的流才能記錄該事件。但是,任何裝置上的流都可以等待該事件。

引數
  • enable_timing (bool, optional) – 指示事件是否應測量時間(預設值:False

  • blocking (bool, optional) – 如果為 True,則 wait() 將是阻塞的(預設為 False)。

  • interprocess (bool) – 如果為 True,則事件可以在程序之間共享(預設值:False

  • external (bool, optional) – 指示在 CUDA 圖中捕獲時,此事件是否應建立事件記錄和事件等待節點,或建立內部跨流依賴關係。有關內部與外部事件的更多資訊,請參閱 跨流依賴項cudaEventRecordExternalcudaEventWaitExternal。(預設為 False)。

elapsed_time(end_event)[源]#

返回經過的時間。

報告時間單位為毫秒,表示自事件記錄到 end_event 記錄之前的時間。

classmethod from_ipc_handle(device, handle)[源]#

從給定裝置上的 IPC handle 重構一個事件。

ipc_handle()[源]#

返回此事件的 IPC handle。

如果尚未記錄,事件將使用當前裝置。

query()[源]#

檢查事件捕獲的所有工作是否已完成。

返回

一個布林值,指示當前由事件捕獲的所有工作是否已完成。

record(stream=None)[源]#

在給定的流中記錄事件。

如果未指定流,則使用 torch.cuda.current_stream()。流的裝置必須與事件的裝置匹配。

synchronize()[源]#

等待事件完成。

Waits until the completion of all work currently captured in this event. This prevents the CPU thread from proceeding until the event completes.

注意

這是 cudaEventSynchronize() 的包裝器:有關更多資訊,請參閱 CUDA 事件文件

wait(stream=None)[源]#

使提交給給定流的所有未來工作等待此事件。

如果未指定流,則使用 torch.cuda.current_stream()

注意

這是 cudaStreamWaitEvent() 的包裝器:有關更多資訊,請參閱 CUDA 事件文件