我已经完成了编写我的CUDA内核,并确认它在我使用nvcc直接编译它时按预期运行,方法是:
然而,当应用程序使用Nsight Compute对应用程序进行分析时,打印到终端的结果与运行的结果不同。我很好奇这种差异是否是引起关注的原因,或者这是否是预期的行为。
注意:应用程序还提供了正确和一致的结果,同时得到了profiled。
发布于 2022-10-26 05:14:18
我能够通过解决共享内存initializations.来解决这个问题。因为Nsight Compute像@Jackson所说的多次运行内核,所以未初始化内存的效果被放大(我正在将atomicAdd执行到未初始化内存中)。
发布于 2022-10-21 07:15:42
我在NVIDIA论坛上进行了跟踪,但也会在这里发布跟踪信息:
您在输出中看到了哪些不一致之处?Nsight Compute多次运行内核来收集其所有信息。所以内核中的print语句会出现多次。它是与此相关的,还是一个计算不同的值?另一个问题是统一内存(UVM)或零拷贝内存Nsight Compute无法在每次重放之前恢复这些值。你在你的应用程序中使用这个吗?如果是这样,应用程序重放模式可能会有所帮助。也许值得一试,看看是否有任何变化。
https://stackoverflow.com/questions/74094838
复制