内部循环较大,共享内存赋值操作耗时很久,为何?

问题,如图所示,请大牛指点迷津。。。
[attach]3120[/attach]

楼主您好,因为您注释掉此句后,您的for循环也就不存在了(因为它无输出了。被自动整体当成无用功干掉)(

进一步的,因为for循环不存在了。您的while()也不存在了。

所以您的代码就基本无东西了。

所以您感觉变的极快。实际上是因为你的代码逻辑发生了重大改变。

:slight_smile:

而不是那一句话本身占据大量时间。

哦,原来是这样,十分感谢!
那由于我内部循环次数太大,完全可以用另一个核函数来做,这样就导致一个核函数调用另一个核函数,请问,这样是允许的吗?或者有其他什么好的方案吗?

您好。

如果是调用__device__是可以的(注意这不是启动另外一个核函数)。
如果是<<<>>>, 则在您拥有3.5的计算能力的卡也是可以的。

但无论哪种,均不会减少您的总计算量(因为您本来就需要计算那么多)。

但他们可能在形式上让您的kernel变的更容易理解。