首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程模式:什么是不规则循环?

编程模式:什么是不规则循环?
EN

Stack Overflow用户
提问于 2013-02-28 12:58:31
回答 1查看 525关注 0票数 2

我从开普勒架构技术简报中看到,动态并行性是在CUDA5.0中新增加的,它支持编程模式中的递归和不规则循环结构。

但有人能告诉我什么是不规则的循环结构吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 15:01:16

根据这本书在第146页的说法(专门针对实现内核),

正则循环有一定的迭代次数,而不规则循环的迭代次数取决于一定的条件。

它们还在这里提供了一些例子:

正则环

代码语言:javascript
复制
for (int i=0; i < 10; i++)
{
    //...;
}

不规则环

代码语言:javascript
复制
while (i < 0)
{
    if (con) 
       {i--;}
    else
        //...;
        i++;
}

另一个不规则环

代码语言:javascript
复制
while (true)
{
    if (cond1) 
        {break;}
    else
    {
        //...;
        if (cond2)
            {break;}
    }
}

为了明确起见,内核中一直存在对不规则循环的支持。相反,他们建议在CUDA5.0中,您现在可以编写GPU代码,通过使用动态并行特性更接近于递归或不规则循环的算法。正确使用此功能可以让您通过启动子内核来实现避免偏差的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15136167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档