我对同步有点困惑。
__syncthreads,您可以同步block.This中的线程,(使用__syncthreads)必须只使用共享内存吗?还是在__syncthreads中使用共享内存具有最佳的性能?发布于 2012-07-15 16:17:25
__syncthreads的使用不涉及共享内存,它只确保块内的同步。但是,当您希望线程通过共享内存共享数据时,需要同步它们。发布于 2012-07-15 15:24:45
__syncthreads()和共享内存是独立的想法,您不需要一个来使用另一个。我想到的使用__syncthreads()的唯一要求是,所有线程都必须最终到达代码中的点,否则程序就会挂起。
至于共享内存,是的,这可能是一个大小的问题,您没有看到它一直在使用。根据我的理解,共享内存被分割在所有块中。例如,使用共享内存1kb和100个块启动内核需要100 1kb,这超出了SM上可用的范围。
发布于 2012-07-15 16:06:27
shared memory和__syncthreads()是独立的概念,但它们往往是相辅相成的。否则,如果线程独立运行,则不需要使用__syncthreads()。shared memory的使用: 1)。shared memory的大小是有限的。要获得最佳性能,您需要在使用shared memory时避免银行冲突。__syncthreads()。有时,在不使用shared memory的情况下使用__syncthreads()可能会导致不可预测的结果。https://stackoverflow.com/questions/11493054
复制相似问题