C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 非确定性输出的CUDA调试过程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的Ubuntu 10.10 64位系统上调试我的基于CUDA 4.0 / Thrust的图像重建代码,我一直在试图弄清楚如何调试我的输出图像看起来有点随机的运行时错误“噪声.”我的代码中没有随机生成输出,所以我希望输出在运行之间保持一致,即使它是错误的.但是,它不是……

我只是想知道是否有任何人有调试CUDA运行时错误的一般程序,例如这些.我没有在我的cuda内核中使用任何共享内存.我已经努力避免任何涉及全球记忆的竞争条件,但我可能错过了一些东西.

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

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

解决方法

你确定你的所有内核都有适当的块大小/余数处理吗?当我们在数组末尾没有处理数据元素时,我们看到了一个非确定性结果.

我们的内核最初用于已知为256个元素的整数倍的数据.所以我们使用了256的块大小,并进行了简单的除法以获得块数.当数据随后变为任何长度时,剩余的255个或更少的元素永远不会被处理.然后输出中的那些点具有随机数据.

大佬总结

以上是大佬教程为你收集整理的c – 非确定性输出的CUDA调试过程全部内容,希望文章能够帮你解决c – 非确定性输出的CUDA调试过程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。