2016-03-28 151 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解決了問題。