我从开普勒架构技术简报中看到,动态并行性是在CUDA5.0中新增加的,它支持编程模式中的递归和不规则循环结构。
但有人能告诉我什么是不规则的循环结构吗?
发布于 2013-02-28 15:01:16
根据这本书在第146页的说法(专门针对实现内核),
正则循环有一定的迭代次数,而不规则循环的迭代次数取决于一定的条件。
它们还在这里提供了一些例子:
正则环
for (int i=0; i < 10; i++)
{
//...;
}不规则环
while (i < 0)
{
if (con)
{i--;}
else
//...;
i++;
}另一个不规则环
while (true)
{
if (cond1)
{break;}
else
{
//...;
if (cond2)
{break;}
}
}为了明确起见,内核中一直存在对不规则循环的支持。相反,他们建议在CUDA5.0中,您现在可以编写GPU代码,通过使用动态并行特性更接近于递归或不规则循环的算法。正确使用此功能可以让您通过启动子内核来实现避免偏差的解决方案。
https://stackoverflow.com/questions/15136167
复制相似问题