gpt4 book ai didi

cuda - 如果同时从多个 pthread 调用 CUDA 内核会怎样?

转载 作者:行者123 更新时间:2023-12-01 12:50:09 24 4
gpt4 key购买 nike

我有一个 CUDA 内核来完成我的艰苦工作,但我也有一些我无法在 CUDA 中编写的艰苦工作需要在 CPU 中完成(使用同一数组的两个位置进行计算)(因为 CUDA 线程不是同步的,我需要在数组的位置 X 上执行艰苦的工作,然后执行 z[x] = y[x] - y[x - 1],其中 y 是 CUDA 内核的数组结果,其中每个thread 在该数组的一个位置上工作,z 是存储结果的另一个数组)。所以我在 CPU 中执行此操作。

我有几个 CPU 线程来做 CPU 方面的工作,但每个线程都在调用 CUDA 内核来传递一些数据。我的问题是:当多个 CPU 线程进行 GPU 调用时,GPU 端会发生什么情况?如果我执行一次 CUDA 内核调用然后创建多个 CPU 线程来执行 CPU 端工作会更好吗?

最佳答案

内核调用在单个流中一个接一个地排队和执行。

但是您可以在内核执行期间指定流 - 然后不同流中的 CUDA 操作可能会同时运行,并且来自不同流的操作可能会交错。默认流为 0。

参见:CUDA Streams and Concurrency

当不同的进程使用同一张卡时,情况是相似的。

还要记住,内核是从 CPU 异步执行的。

关于cuda - 如果同时从多个 pthread 调用 CUDA 内核会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061619/

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