【发布时间】:2023-04-06 14:54:01
【问题描述】:
我怀疑我正在运行的大型 CUDA 内核中存在细粒度的内存错误。设备端 printf 在应该是确定性的变量上显示一些不同的值。我正在使用的 CUDA 开发工具的“稳定”版本删除了设备仿真模式,其 cuda-gdb 版本不适用于模板化函数。 Cuda-memcheck 运行,但没有捕获任何内容。
在 cpu 上,我会使用 valgrind 或电栅栏来捕获这样的内存错误。如果你只有printf,那么调试内存错误有什么巧妙的技巧?
例如,有没有办法用 nans 填充整个内存空间并使用 printfs 来查找它们在我的计算中第一次弹出的位置?
【问题讨论】: