当一个线程满足一定条件时,如何使得整个kernel结束?

偶在用cuda编写一个计算程序时候,想实现一个功能:当一个线程满足一定条件时,使得整个kernel结束。
请问各位达人如何实现?

[ 本帖最后由 aben321321 于 2010-3-10 20:18 编辑 ]

关注~~~~

不能马上使整个kernel立即完成,不过可以让线程达到条件后,kernel执行很短一段时间就结束

具体做法是设一个标志位flag = 0,线程达到条件后对这个标志位置1(使用原子操作)

kernel函数加一个if(flag == 0)条件才执行

这样,只要线程置flag后,之后的所有block都走向空分支,基本不用什么时间就结束。

可以肯定的说:不能!