【发布时间】:2011-07-23 20:51:38
【问题描述】:
CUDA 编程指南指出
__syncthreads() 在条件代码中是允许的,但前提是 条件评估相同 跨越整个线程块, 否则代码执行很可能 挂起或产生意外的一面 效果。
因此,如果我需要跨块使用条件分支来同步线程,其中一些线程可能会或可能不会采用包含__syncthreads() 调用的分支,这是否意味着它不起作用?
我想可能有各种情况下您可能需要这样做;例如,如果您有一个二进制掩码并且需要有条件地对像素应用某个操作。说,if (mask(x, y) != 0) 然后执行包含__syncthreads() 的代码,否则什么也不做。那要怎么做呢?
【问题讨论】:
标签: c++ parallel-processing cuda synchronization