请教一个核函数的问题:
在核函数中,是否可以使用goto语句?
比如下面的情况:
global void Kernel( )
{
// 语句1
if ( 判断条件 )
goto HERE;
// 语句2
HERE: ;
// 语句3
}
上述代码中:语句2部分,只有当满足一定条件时,才执行,可否利用goto语句这样实现?
请教一个核函数的问题:
在核函数中,是否可以使用goto语句?
比如下面的情况:
global void Kernel( )
{
// 语句1
if ( 判断条件 )
goto HERE;
// 语句2
HERE: ;
// 语句3
}
上述代码中:语句2部分,只有当满足一定条件时,才执行,可否利用goto语句这样实现?
楼主您好,可以使用goto的。
但回到您这个目的,您可以简单的使用取反条件的if:
建议将原本的:
if ( 判断条件 ) goto HERE;
// 语句2
HERE: ;
改成:
if (!判断条件)
{
//语句2
}
这是等价的,但更清晰点。
楼主觉得呢?
是的,版主。但是,语句2 部分由二十多行,这样CUDA好像就不能进行分支预测。是这样的吗?
楼主您杞人忧天了。。。。想多了。。。
该怎么写就怎么写。
先写出来再说!
(这2种一样的,别乱想,放心吧)
(请直接按照2#给出的最清晰的写法实现您的算法)
嗯,版主,好的,我先把程序走通再说:lol。谢谢版主的指导!