4

我正在我的 Ubuntu 10.10 64 位系统上调试我的基于 CUDA 4.0/Thrust 的图像重建代码,我一直在试图弄清楚如何调试这个运行时错误,我的输出图像出现一些随机“噪音。” 我的代码中没有随机数生成器输出,所以我希望输出在运行之间保持一致,即使它是错误的。然而,这并不是...

我只是想知道是否有人有调试此类 CUDA 运行时错误的通用程序。我没有在我的 cuda 内核中使用任何共享内存。我已经尽力避免任何涉及全局内存的竞争条件,但我可能会错过一些东西。

我试过使用 gpu ocelot,但它在识别我的一些 CUDA 和 CUSPARSE 函数调用时遇到问题。

此外,我的代码通常有效。只是当我更改这个设置时,我才会得到这些不确定的结果。我已经检查了与该设置相关的所有代码,但我无法弄清楚我做错了什么。如果我能把它提炼成我可以在这里发布的东西,我可能会这样做,但是在这一点上发布在这里太复杂了。

4

1 回答 1

2

你确定你所有的内核都有正确的块大小/剩余处理吗?当数组末尾的数据元素未被处理时,我们看到的一个地方出现了不确定的结果。

我们的内核最初是为已知是 256 个元素的整数倍的数据设计的。所以我们使用了 256 的块大小,并做了一个简单的除法来得到块的数量。当数据随后更改为任意长度时,剩余的 255 个或更少的元素永远不会被处理。然后输出中的那些点具有随机数据。

于 2011-07-21T00:21:48.827 回答