我有一个 CUDA 内核来完成我的艰苦工作,但我也有一些艰苦的工作需要在 CPU 中完成(使用同一数组的两个位置进行计算),而我无法在 CUDA 中编写(因为 CUDA 线程不是同步的) ,我需要对数组的位置 X 进行艰苦的工作,然后在 z[x] = y[x] - y[x - 1] 之后,其中 y 是每个线程工作的 CUDA 内核的数组结果这个数组的一个位置,z 是另一个存储结果的数组)。所以我在CPU中做这个。
我有几个 CPU 线程来做 CPU 方面的工作,但每个线程都在调用一个 CUDA 内核来传递一些数据。我的问题是:当多个 CPU 线程进行 GPU 调用时,GPU 端会发生什么?如果我执行一次 CUDA 内核调用然后创建多个 CPU 线程来完成 CPU 端的工作会更好吗?