流#
- class torch.cuda.Stream(device=None, priority=0, **kwargs)[source]#
CUDA流的包装器。
CUDA流是属于特定设备的一系列线性执行,独立于其他流。它支持with语句作为上下文管理器,以确保with块内的算子在相应流上运行。有关详细信息,请参阅 CUDA 语义。
- 参数
device (torch.device 或 int, 可选) – 分配流的设备。如果
device
是None
(默认) 或负整数,则将使用当前设备。priority (int, 可选) – 流的优先级,可以是正数、0 或负数。数字越小,优先级越高。默认优先级为 0。如果值超出允许的优先级范围,它将自动映射到最近的有效优先级(正数过大映射为最低优先级,负数过小映射为最高优先级)。
- record_event(event=None)[source]#
记录一个事件。
- 参数
event (torch.cuda.Event, 可选) – 要记录的事件。如果未提供,将分配一个新的事件。
- 返回
记录的事件。
- synchronize()[source]#
等待此流中的所有内核完成。
注意
这是
cudaStreamSynchronize()
的包装器:有关更多信息,请参阅 CUDA Stream 文档。
- wait_event(event)[source]#
使提交到此流的所有未来工作等待一个事件。
- 参数
event (torch.cuda.Event) – 要等待的事件。