【发布时间】:2012-10-25 17:55:41
【问题描述】:
我有一个 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 方面的工作会更好吗?
【问题讨论】: