gpt4 book ai didi

cuda 中的 cudaStreamSynchronize 用于单个流

转载 作者:行者123 更新时间:2023-12-05 01:14:29 25 4
gpt4 key购买 nike

我对 CUDA 流感到困惑。我了解到 cudaStreamSynchronize() 会等待特定流的 GPU 操作完成。对于流,如果我们调用了 2 个内核,则内核将按顺序执行;对于流来说,第一个内核将被执行,下一个内核将仅在第一个内核完成后执行。

我想问的是,如果我们是单流,是否需要同步流?对于单个流,无论我们同步与否,它不是按顺序执行的吗?

最佳答案

是的,向同一流(默认流或任何流)发出的 cuda 调用 是按顺序执行的。它们是连载的。

在某些特定情况下,您可能仍会向该流发出同步命令,在这些情况下,您希望在执行某些 CPU 代码之前等待 GPU 事件完成。例如,在内核调用后立即发出或在 cudaMemcpyAsync 后立即发出的 CPU 代码通常会与前面的 (cuda) 调用同时执行。

一种特定情况可能是用于 cuda 错误检查。另一种具体情况可能是,如果您在零拷贝固定内存中异步进行一些 CPU/GPU 数据交换(不需要发出显式 cudaMemcpy... 调用)。

但是当发布到同一个流时,通常不需要显式同步通常 cudaMemcpyAsync...kernel call...cudaMemcpyAsync 模式的 cuda 调用。流将为您完成。

关于cuda 中的 cudaStreamSynchronize 用于单个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com