我想在进行基数排序的内核中调用一个独占扫描函数。但是,独占扫描只需要一半的线程来完成其工作。
独占扫描算法中需要几个__syncthreads()。如果我在开头有一个语句:
if(threadIdx.x > NTHREADS/2) return;
这些线程将不参与独占扫描的同步线程,这是不允许的。有没有什么方法解决这个问题?我确实将对独占扫描的调用包围在__syncthread()中。
独占扫描算法中需要几个__syncthreads()。如果我在开头有一个语句:
if(threadIdx.x > NTHREADS/2) return;
这些线程将不参与独占扫描的同步线程,这是不允许的。有没有什么方法解决这个问题?我确实将对独占扫描的调用包围在__syncthread()中。
return
,但稍后调用了__syncthreads()
。我们仍然不知道是由于架构还是GPU更快的原因。 - Huy Le