非确定性输出的CUDA调试程序
CUDA debugging procedure for non-deterministic output
我正在我的Ubuntu 10.10 64位系统上调试我的CUDA 4.0/基于推力的图像重建代码,我一直在试图找出如何调试这个运行时错误,我的输出图像出现一些随机的"噪音"。在我的代码中没有随机数生成器输出,所以我希望每次运行之间的输出是一致的,即使它是错误的。然而,它不是……
我只是想知道是否有人有一个通用的程序来调试CUDA运行时错误,如这些。我没有在cuda内核中使用任何共享内存。我已经尽力避免任何涉及全局内存的竞态条件,但是我可能错过了一些东西。
我已经尝试使用gpu ocelot,但它有问题识别我的一些CUDA和CUSPARSE函数调用。
同样,我的代码一般工作。只是当我改变这个设置时,我得到了这些不确定的结果。我已经检查了与该设置相关的所有代码,但我不知道我做错了什么。如果我能把它提炼出来放到这里,我可能会这么做,但现在放到这里太复杂了
你确定所有的内核都有适当的块大小/剩余处理吗?当数组末尾的数据元素没有被处理时,就会出现不确定的结果。
我们的内核最初用于处理已知是256个元素的整数倍的数据。所以我们使用256的块大小,并做一个简单的除法来得到块的数量。当将数据更改为任意长度时,不会处理剩余的255个或更少的元素。然后输出中的这些点具有随机数据。
相关文章:
- 如何在添加文件的情况下在VSCode中调试C++程序
- Cuda 基本程序 (将值写入矩阵和 std:cout 不起作用) ;主功能不启动
- 如何在 VsCode 上调试 C++/C 程序
- 使用Caffe和CUDA的C++程序
- 调试C++程序时遇到问题
- 使用 QtCreator 构建 CUDA/C++ 测试程序时出现错误 2
- 如何模拟时间的流逝来调试程序?
- 基于CMAKE的CUDA应用程序的构建失败 - 没有传递给链接器的文件
- 我们可以在没有安装工具包的情况下运行CUDA加速程序
- 如何在main()之前调试程序崩溃
- 当Visual Studio停止调试程序时会自动清理内存
- VS 代码C++:无法启动调试 - 程序路径丢失或无效
- 如何在 arm 平台中调试 c 程序中的全局变量损坏
- 如何调试 C++ 程序
- 如何使用数组调试C++程序
- 使用Valgrind调试程序-检测分段故障
- 使用 CUDA 调试时的 CUDA 堆栈大小
- 调试程序时奇怪的GDB消息C++
- 我可以通过 G++ 将 CUDA 与C++程序一起使用吗?或者 CUDA 只能使用 GCC 编译
- 非确定性输出的CUDA调试程序