评价此页

#

class torch.cuda.Stream(device=None, priority=0, **kwargs)[source]#

CUDA流的包装器。

CUDA流是属于特定设备的一系列线性执行,独立于其他流。它支持with语句作为上下文管理器,以确保with块内的算子在相应流上运行。有关详细信息,请参阅 CUDA 语义

参数
  • device (torch.deviceint, 可选) – 分配流的设备。如果 deviceNone (默认) 或负整数,则将使用当前设备。

  • priority (int, 可选) – 流的优先级,可以是正数、0 或负数。数字越小,优先级越高。默认优先级为 0。如果值超出允许的优先级范围,它将自动映射到最近的有效优先级(正数过大映射为最低优先级,负数过小映射为最高优先级)。

query()[source]#

检查所有提交的工作是否已完成。

返回

一个布尔值,指示此流中的所有内核是否已完成。

返回类型

布尔值

record_event(event=None)[source]#

记录一个事件。

参数

event (torch.cuda.Event, 可选) – 要记录的事件。如果未提供,将分配一个新的事件。

返回

记录的事件。

synchronize()[source]#

等待此流中的所有内核完成。

注意

这是 cudaStreamSynchronize() 的包装器:有关更多信息,请参阅 CUDA Stream 文档

wait_event(event)[source]#

使提交到此流的所有未来工作等待一个事件。

参数

event (torch.cuda.Event) – 要等待的事件。

注意

这是 cudaStreamWaitEvent() 的包装器:有关更多信息,请参阅 CUDA Stream 文档

此函数返回,而不等待 event:仅影响未来的操作。

wait_stream(stream)[source]#

与另一个流同步。

提交到此流的所有未来工作将等待,直到调用时提交到给定流的所有内核完成。

参数

stream (Stream) – 要同步的流。

注意

此函数返回,而不等待 stream 中当前排队的内核:仅影响未来的操作。