调用核函数时候if条件 可以使不同的线程执行不同的计算吗

JH_kanwairen 2013-07-21 09:27:59
可以像c语言里一样在核函数里面用if语句来使一部分线程执行一种计算,而另一部分线程执行其他的计算。
一般调用时候if( j < 21 && i < 321 ) 这样的语句就可以使线程开始算,现在我想使其中的一些线程做其他的运算,可以在这个if之前 加上一个另外的if( j < 10 && i < 150)这样的语句来实现吗??
...全文
2108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lh6868 2014-07-21
  • 打赏
  • 举报
回复
楼主,可以考虑整WARP分支,应该会比单纯的串行快一些。
_梦魇花葬 2014-07-15
  • 打赏
  • 举报
回复
在CUDA编程里面,最好不要用if语句的,即使采用的话,也要在CPU端采用,这样的影响小一点!
_梦魇花葬 2014-07-14
  • 打赏
  • 举报
回复
楼主要采用GPU并行,如果再加if的话,就有点串行的了,那就没有GPU并行优势了,执行会很慢,还不如直接串行呢!
_梦魇花葬 2014-06-19
  • 打赏
  • 举报
回复
是可以的,不过分支执行就丧失掉了GPU并行的优势了,就是执行的有些慢
HEFEI_WH_HT 2014-06-18
  • 打赏
  • 举报
回复
可以,可以实现的。
kangkun 2013-09-11
  • 打赏
  • 举报
回复
可以,不过完成发挥不出GPU优势了

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧