【问题标题】:Dismiss a thread in cuda c [duplicate]关闭cuda c中的线程[重复]
【发布时间】:2015-03-23 00:43:59
【问题描述】:
while loop {
  if condition then compute;
  else exit();
  ...
  __syncthreads( );
}

Cuda C 中是否有办法关闭线程,以便 __syncthreads(或其他适当的函数)不会等待它?谢谢。

【问题讨论】:

    标签: c cuda


    【解决方案1】:

    据我所知,没有办法从 Cuda 中的线程“退出”。

    顺便说一句,在您发布的伪代码中,实际上并不需要退出杀死线程,事实上,如果您将其重写为:

    while loop {
      if(condition) {
        compute;
      }
      __syncthreads();
    }
    

    应该可以正常工作。

    【讨论】:

    • 感谢您的回答!关于“退出”,是的,您是对的。它的唯一目的是减少需要在 __syncthreads() 处等待的线程数(我认为是一种优化)。
    • @mark4rd:那不是优化,而是严重的正确性问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2021-07-30
    • 2012-07-23
    • 2012-02-27
    • 2014-02-07
    • 1970-01-01
    相关资源
    最近更新 更多