Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
initcheck如何影响CUDA程序的执行?_Cuda - Fatal编程技术网

initcheck如何影响CUDA程序的执行?

initcheck如何影响CUDA程序的执行?,cuda,Cuda,我正在开发一个使用多个设备上下文的程序,每个都在单独的流中处理(通常是同步的)。问题是,只有在cuda memcheck--tool initcheck下运行时,它才会产生正确的结果。我的问题是: 在initcheck下运行程序如何修改它的执行 由于复杂程度的原因,我无法共享任何代码或生成MCVE,所以请比较笼统地对待这个问题。该程序已使用nvidia提供的所有调试工具进行检查,未产生任何错误。来自: initcheck工具是运行时未初始化的设备全局内存 访问检测器。此工具可以识别设备全局内存何

我正在开发一个使用多个设备上下文的程序,每个都在单独的流中处理(通常是同步的)。问题是,只有在
cuda memcheck--tool initcheck
下运行时,它才会产生正确的结果。我的问题是:

initcheck
下运行程序如何修改它的执行

由于复杂程度的原因,我无法共享任何代码或生成MCVE,所以请比较笼统地对待这个问题。该程序已使用nvidia提供的所有调试工具进行检查,未产生任何错误。

来自:

initcheck工具是运行时未初始化的设备全局内存 访问检测器。此工具可以识别设备全局内存何时可用 通过设备端写入或通过 cudaMemcpy/cudaMemset

目前,此工具仅支持检测对设备全局的访问 记忆。 [...] 注意:initcheck工具不执行任何内存访问错误检查

如果您实际上没有检测到任何错误,但在工具关闭时获得不同的结果,那么我的第一个怀疑可能是一些并发错误(写后读取,等等)。像上面这样的工具通常会减慢程序的某些部分,这可能会影响这类问题


不过,这只是一个猜测…

我想是连载。谢谢你的回答!医生是我的第一选择,但由于缺乏信息,我不得不在这里问这个问题。我还对一些并发性问题下了赌注,但不知道如何识别它们的起源。我希望
initcheck
做的不仅仅是增加开销——调查它周围发生的事情将是一个很好的开始。它做的更多:它检查您是否只使用初始化的内存——但是如果您没有得到错误,那么这就不是问题。问题是不同的。看起来主机端的设备指针算法在传递到内核时无法正常工作。无论如何,谢谢你的帮助!有趣。指针算法在任何一侧的行为都应该相同。我想看看你发现的问题!