我正在嘗試調試可正常工作的源代碼,並且在編譯時不會給出錯誤或警告。問題是,當我一步一步地用cuda-gdb運行它時,根本沒有啓動CUDA內核(我從調試器獲得的輸出與Nvidia cuda-gdb指南中顯示的完全不同),但程序仍然工作沒有任何錯誤。在任何時候,我都會得到沒有CUDA內核,設備或線程。顯然焦點也沒有設置任何東西。我正在使用CUDA-GDB的4.2版本。CUDA-GDB:沒有CUDA設備
這是我從調試程序時得到它應該進入內核:
Breakpoint 1, matrixMulGPU (M=0x609160, N=0x609270, P=0x609490, Width=8)
at matrixMul1.cu:141
141 MatrixMulKernel<<<dimGrid, dimBlock>>>(Md, Nd, Pd, Width);
(cuda-gdb) step
MatrixMulKernel (__cuda_0=0x210000, __cuda_1=0x210100, __cuda_2=0x210200,
__cuda_3=8) at matrixMul1.cu:103
103 __global__ void MatrixMulKernel(float *Md, float *Nd, float *Pd, int Width){
(cuda-gdb) step
__device_stub__Z15MatrixMulKernelPfS_S_i (__par0=0x210000, __par1=0x210100,
__par2=0x210200, __par3=8)
at tmpxft_000016d4_00000000-1_matrixMul1.cudafe1.stub.c:5
5 tmpxft_000016d4_00000000-1_matrixMul1.cudafe1.stub.c: Arquivo ou diretório não encontrado.
in tmpxft_000016d4_00000000-1_matrixMul1.cudafe1.stub.c
(cuda-gdb) step
cudaLaunch<char> (
entry=0x4011ea "UH\211\345SH\203\354(H\211}\350H\211u\340H\211U؉MԋM\324H\213U\330H\213]\340H\213E\350H\211\336H\211\307\350\024\377\377\377H\203\304([\311\303UH\211\345SH\203\354(\[email protected]") at cuda_runtime.h:958
958 return cudaLaunch((const char*)entry);
(cuda-gdb) step
959 }
(cuda-gdb) step
MatrixMulKernel (__cuda_0=0x210000, __cuda_1=0x210100, __cuda_2=0x210200,
__cuda_3=8) at matrixMul1.cu:121
121 }
我的CUDA設備是一塊GeForce 8400M GS,我曾與DEVICEQUERY檢查沒有問題。 我不知道如何解決這個問題,因爲Nvidia論壇目前處於脫機狀態!
非常感謝。
您可以在顯示設備上調試使用cuda-gdb需要一個專用設備 – talonmies 2012-07-23 20:19:02
talonmies,你是什麼意思顯示設備?雖然我的設備可以使用RAM內存,不是專用的嗎? – felippeduran 2012-07-25 02:32:59
我的意思是GPU你不能調試運行你的顯示器,所以除非你至少有兩個GPU,或者你沒有運行X窗口,否則你不能使用cuda-gdb。 – talonmies 2012-07-25 06:13:31