繁体   English   中英

CUDA的细粒度内存检查器?

[英]Fine Grained Memory Checker for CUDA?

我怀疑我正在运行的大型CUDA内核中存在细粒度的内存错误。 设备端printf显示了一些应该确定的变量值。 我使用的CUDA开发工具的“稳定”版本已删除设备仿真模式,而其cuda-gdb版本不适用于模板化功能。 Cuda-memcheck运行,但是没有捕获任何东西。

在CPU上,我将使用valgrind或电篱笆来捕获这样的内存错误。 如果您只有printf,有什么巧妙的技巧可以调试内存错误?

例如,是否有一种方法可以用nans充斥整个内存空间,并使用printfs查找它们在我的计算中首次弹出的位置?

对于这种事情,我喜欢分配整个可用的全局内存空间,然后自己管理内存。 使用自定义memset函数将整个分配设置为可识别的字大小的位模式,然后初始化分配中的块供内核使用。 如果您实现了一个简单的设备端声明来捕获该位模式并报告线程,块,行在其中显示的位置,则您应该能够隔离cuda-memcheck无法捕获的全局内存读取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM