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