gpt4 book ai didi

parallel-processing - 如何与 Julia CUDArt 同步?

转载 作者:行者123 更新时间:2023-12-04 06:33:41 24 4
gpt4 key购买 nike

我刚刚开始使用 Julia 的 CUDArt 包来管理 GPU 计算。我想知道如何确保如果我从 gpu 中提取数据(例如使用 to_host() ),我不会在对它执行所有必要的计算之前这样做。

通过一些实验,似乎to_host(CudaArray)在更新特定的 CudaArray 时会滞后。那么,也许仅仅使用它就足以确保安全?但这似乎有点偶然。

现在,我正在使用 launch()运行我的内核的函数,如包 documentation 中所述.

CUDArt 文档给出了一个使用 Julia 的 @sync 的示例。宏,这似乎很可爱。但出于 @sync 的目的我已经完成了我的“工作”,并准备在内核启动时继续前进 launch() ,不是一旦完成。据我了解launch()的操作- 没有办法改变这个特性(例如,让它等待接收它“启动”的函数的输出)。

我怎样才能完成这种同步?

最佳答案

我认为更规范的方法是为每个设备制作一个流:

streams = [(device(dev); Stream()) for dev in devlist]

然后在 @async 里面块,在你告诉它进行计算之后,你使用 wait(stream)函数告诉它等待该流完成其计算。请参阅自述文件中的 Streams 示例。

关于parallel-processing - 如何与 Julia CUDArt 同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903079/

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