2016-03-28 145 views
0

我在使用nsight调试cuda内核时遇到了nsight调试错误,如下所示。我不知道这意味着什么。看起来像cuFFT的事情。但任何人都可以提供一些建议吗?谢谢。nsight VSE调试器错误“由于缺少代码修补内存导致代码修补失败”

enter image description here

+1

这是一个相当具有描述性的错误消息。您是否尝试过这样的建议:“请增加Nsight |选项| CUDA |代码修补内存并重试”? –

+1

内核的demangled版本是“void __kernelTex <(fftDirection_t)-1>(float2 *,unsigned int,unsigned int,unsigned int,divisor_t,divisor_t,divisor_t,dimStride_t,dimStride_t,dimStride_t,dimStride_t)”如果您不'无法用该原型识别内核,它很可能来自您正在使用的库。 –

+0

@RobertCrovella我正在尝试增加补丁内存,但看起来我的Nsight没有这个选项。我正在使用Nsight 5.0。我怀疑cuFFT,cuda fft库是否有问题。 –

回答

1

如Nsight报告的错误消息散尽指出的,误差是由具有Nsight设备上可用的存储器不足交互式地调试正在运行的代码引起的。从Nsight文档引用:

When the CUDA Memory Checker is enabled, it will consume extra memory on the GPU. If there is not enough patch RAM for the CUDA Debugger, it will give the following error:

Internal debugger error occurred while attempting to launch "KernelName - CUmodule 0x04e67f10: code patching failed due to lack of code patching memory. 

If this happens, increase the patch RAM factor by going to Nsight > Options > CUDA > Code Patching Memory Factor.

This is a multiplier of the kernel's instruction size, which is added to a base patch RAM size of 64k.

Another option is to disable the shared or global memory checking, in order to use less patch RAM.

原始海报指出,将代码修补内存因子从2增加到16解决了问题。