2

私はこのcudaコードを持っています、それはcuda-memcheckで実行するとエラーを返さず、正常に終了し、私が得る結果は実際に期待されたものです...同時に、ファイル "cuda-memcheck-(さまざまなマンバーをここに置いてください).out」が作成され、それは空です。

同じプログラムをcuda-gdbで実行すると、エラーレポートなしで正常に終了します。

しかし、(cuda-gdbの下で)「setcuda memcheck on」を実行してからプログラムを実行すると、次のようなファイル「cuda-memcheck.out」が作成されます。

cuda-memcheckを開始しています...

cuda-memcheckでエラーが発生しました(3,2,2)

これは、cuda-gdb内から「run」を実行するとすぐに発生します。次に、実行が開始された直後(そして実際にはCUFFTカーネルの実行に非常に近い)、次のようになります。

Program received signal CUDA_EXCEPTION_1, Lane Illegal Address.
[Switching focus to CUDA kernel 81, grid 82, block (0,0,0), thread (1,17,0), device 0, sm 0, warp 2, lane 5]
*** glibc detected *** cuda-gdb: double free or corruption (!prev): 0x000000001070e5d0 ***
======= Backtrace: =========
/lib/libc.so.6(+0x774b6)[0x7f597c4814b6]
/lib/libc.so.6(cfree+0x73)[0x7f597c487c83]
/lib/libc.so.6(obstack_free+0x48)[0x7f597c48b128]
cuda-gdb[0x5c5a25]
cuda-gdb[0x4352d0]
cuda-gdb[0x5649c4]
cuda-gdb[0x5e42d7]
cuda-gdb[0x5e45fd]
cuda-gdb[0x56436c]
cuda-gdb[0x50d772]
cuda-gdb[0x50e3c3]
cuda-gdb[0x51373b]
cuda-gdb[0x50faff]
cuda-gdb[0x510194]
cuda-gdb[0x51373b]
cuda-gdb[0x50eaac]
cuda-gdb[0x504311]
cuda-gdb[0x50a09d]
cuda-gdb[0x4ffc4f]
cuda-gdb[0x410b9d]
cuda-gdb[0x519c48]
cuda-gdb[0x51a82c]
cuda-gdb[0x5f9b57]
cuda-gdb[0x519cb9]
cuda-gdb[0x5186c8]
cuda-gdb[0x51995a]
cuda-gdb[0x51373b]
cuda-gdb[0x4a1a40]
cuda-gdb[0x407529]
cuda-gdb[0x51373b]
cuda-gdb[0x408056]
cuda-gdb[0x51373b]
cuda-gdb[0x407464]
cuda-gdb[0x40742e]
/lib/libc.so.6(__libc_start_main+0xfe)[0x7f597c428d8e]
cuda-gdb[0x407339]
======= Memory map: ========
00400000-008b6000 r-xp 00000000 08:01 190634                             /usr/local/cuda/bin/cuda-gdb
00ab5000-00ab6000 r--p 004b5000 08:01 190634                             /usr/local/cuda/bin/cuda-gdb
00ab6000-00ac9000 rw-p 004b6000 08:01 190634                             /usr/local/cuda/bin/cuda-gdb
00ac9000-0f0f8000 rw-p 00000000 00:00 0 
0fef3000-11b2c000 rw-p 00000000 00:00 0                                  [heap]
7f5974000000-7f5974021000 rw-p 00000000 00:00 0 
7f5974021000-7f5978000000 ---p 00000000 00:00 0 
7f597a4df000-7f597aacc000 rw-p 00000000 00:00 0 
7f597aacc000-7f597aacd000 rw-p 00000000 00:00 0 
7f597b538000-7f597b54d000 r-xp 00000000 08:01 954799                     /lib/libgcc_s.so.1
7f597b54d000-7f597b74c000 ---p 00015000 08:01 954799                     /lib/libgcc_s.so.1
7f597b74c000-7f597b74d000 r--p 00014000 08:01 954799                     /lib/libgcc_s.so.1
7f597b74d000-7f597b74e000 rw-p 00015000 08:01 954799                     /lib/libgcc_s.so.1
7f597b75d000-7f597b764000 r-xp 00000000 08:01 954961                     /lib/libthread_db-1.0.so
7f597b764000-7f597b963000 ---p 00007000 08:01 954961                     /lib/libthread_db-1.0.so
7f597b963000-7f597b964000 r--p 00006000 08:01 954961                     /lib/libthread_db-1.0.so
7f597b964000-7f597b965000 rw-p 00007000 08:01 954961                     /lib/libthread_db-1.0.so
7f597b965000-7f597b966000 ---p 00000000 00:00 0 
7f597b966000-7f597c166000 rw-p 00000000 00:00 0 
7f597c166000-7f597c40a000 r--p 00000000 08:01 49399                      /usr/lib/locale/locale-archive
7f597c40a000-7f597c584000 r-xp 00000000 08:01 954957                     /lib/libc-2.12.1.so
7f597c584000-7f597c783000 ---p 0017a000 08:01 954957                     /lib/libc-2.12.1.so
7f597c783000-7f597c787000 r--p 00179000 08:01 954957                     /lib/libc-2.12.1.so
7f597c787000-7f597c788000 rw-p 0017d000 08:01 954957                     /lib/libc-2.12.1.so
7f597c788000-7f597c78d000 rw-p 00000000 00:00 0 
7f597c78d000-7f597c78f000 r-xp 00000000 08:01 954973                     /lib/libdl-2.12.1.so
7f597c78f000-7f597c98f000 ---p 00002000 08:01 954973                     /lib/libdl-2.12.1.so
7f597c98f000-7f597c990000 r--p 00002000 08:01 954973                     /lib/libdl-2.12.1.so
7f597c990000-7f597c991000 rw-p 00003000 08:01 954973                     /lib/libdl-2.12.1.so
7f597c991000-7f597c9b7000 r-xp 00000000 08:01 954792                     /lib/libexpat.so.1.5.2
7f597c9b7000-7f597cbb7000 ---p 00026000 08:01 954792                     /lib/libexpat.so.1.5.2
7f597cbb7000-7f597cbb9000 r--p 00026000 08:01 954792                     /lib/libexpat.so.1.5.2
7f597cbb9000-7f597cbba000 rw-p 00028000 08:01 954792                     /lib/libexpat.so.1.5.2
7f597cbba000-7f597cc3c000 r-xp 00000000 08:01 954964                     /lib/libm-2.12.1.so
7f597cc3c000-7f597ce3b000 ---p 00082000 08:01 954964                     /lib/libm-2.12.1.so
7f597ce3b000-7f597ce3c000 r--p 00081000 08:01 954964                     /lib/libm-2.12.1.so
7f597ce3c000-7f597ce3d000 rw-p 00082000 08:01 954964                     /lib/libm-2.12.1.so
7f597ce3d000-7f597ce53000 r-xp 00000000 08:01 954914                     /lib/libz.so.1.2.3.4
7f597ce53000-7f597d053000 ---p 00016000 08:01 954914                     /lib/libz.so.1.2.3.4
7f597d053000-7f597d054000 r--p 00016000 08:01 954914                     /lib/libz.so.1.2.3.4
7f597d054000-7f597d055000 rw-p 00017000 08:01 954914                     /lib/libz.so.1.2.3.4
7f597d055000-7f597d095000 r-xp 00000000 08:01 954818                     /lib/libncurses.so.5.7
7f597d095000-7f597d294000 ---p 00040000 08:01 954818                     /lib/libncurses.so.5.7
7f597d294000-7f597d298000 r--p 0003f000 08:01 954818                     /lib/libncurses.so.5.7
7f597d298000-7f597d299000 rw-p 00043000 08:01 954818                     /lib/libncurses.so.5.7
7f597d299000-7f597d2b1000 r-xp 00000000 08:01 954959                     /lib/libpthread-2.12.1.so
7f597d2b1000-7f597d4b0000 ---p 00018000 08:01 954959                     /lib/libpthread-2.12.1.so
7f597d4b0000-7f597d4b1000 r--p 00017000 08:01 954959                     /lib/libpthread-2.12.1.so
7f597d4b1000-7f597d4b2000 rw-p 00018000 08:01 954959                     /lib/libpthread-2.12.1.so
7f597d4b2000-7f597d4b6000 rw-p 00000000 00:00 0 
7f597d4b6000-7f597d4d6000 r-xp 00000000 08:01 954965                     /lib/ld-2.12.1.so
7f597d4df000-7f597d672000 rw-p 00000000 00:00 0 
7f597d672000-7f597d678000 r--p 00a01000 08:06 26722558                   /home/user/workspace/cuda/fullcu/current_debug/Default/shl_3D_cu
7f597d678000-7f597d67e000 r--p 00a15000 08:06 26722558                   /home/user/workspace/cuda/fullcu/current_debug/Default/shl_3D_cu
7f597d67e000-7f597d687000 r--p 00a06000 08:06 26722558                   /home/user/workspace/cuda/fullcu/current_debug/Default/shl_3D_cu
7f597d687000-7f597d6c0000 r--p 009c5000 08:06 26722558                   /home/user/workspace/cuda/fullcu/current_debug/Default/shl_3D_cu
7f597d6c0000-7f597d6c5000 rw-p 00000000 00:00 0 
7f597d6c5000-7f597d6ca000 r--p 009fd000 08:06 26722558                   /home/user/workspace/cuda/fullcu/current_debug/Default/shl_3D_cu
7f597d6cb000-7f597d6cd000 rw-p 00000000 00:00 0 
7f597d6cd000-7f597d6d4000 r--s 00000000 08:01 49265                      /usr/lib/gconv/gconv-modules.cache0x000000000366a8d0 in fdividef<<<(16,1,1),(4,64,1)>>> (Aborted

とcuda-gdbがクラッシュします。

私のコードに実際に誤ったmemアクセスがあると見なす必要がありますか?それとも、cuda-memcheckの初期化時に発生するエラーですか?

誰かが前にその行動を見た?

アイデアありがとうございます。

4

3 に答える 3

1

アプリケーションで memcheck 検出可能なエラーが発生しているようです。アプリケーションがブレークポイントで中断されると、何らかの理由で cuda-gdb がクラッシュします。

  1. デバイス コードの通常のブレークポイントで停止すると、cuda-gdb がクラッシュしますか?
  2. CUDA Toolkit と NVIDIA ディスプレイ ドライバーのどのバージョンを使用していますか? 最新の CUDA Toolkit 5.0RC ビルドを試すことをお勧めします。安定性と機能性が大幅に改善されています。
  3. cudatools@nvidia.com でチームに直接連絡して詳細情報を提供していただけると非常に貴重です (この方法で、次の CUDA ツールキット バージョンで問題を修正できる可能性があります)。クラッシュをトリガーするアプリケーションも提供できますか?

前もって感謝します。

于 2012-09-12T17:36:37.833 に答える
0

この問題をうまく追跡するには、Nvidiaにバグを報告することをお勧めします。バグを報告する手順は次のとおりです。1。ページhttp://developer.nvidia.com/cuda/join-cuda-registered-developer-programを開きます。2.登録されていない場合は、[今すぐ参加]をクリックしてください。そうでない場合は、[今すぐログイン]をクリックしてください。3.ログインするために電子メールとパスワードを入力します。4.左側のパネルの[ホーム]セクションに[バグレポート]アイテムがあり、それをクリックしてバグを報告します。5.必要なテーマを入力します。他の項目はオプションですが、詳細情報は、問題をターゲットにして修正するのに役立ちます。6.必要に応じて、添付ファイルをアップロードする必要があります。7. Linuxシステムの場合、nvidia-bug-reportを添付することをお勧めします。8.問題が特定のコードパターンに関連している場合は、サンプルコードとそれをコンパイルするための手順を再現することが望まれます。

于 2012-09-14T10:16:22.687 に答える
0

通常のブレークポイントで何が起こるかについての Eugene の質問に基づいて、コードの重要なポイント (これまでに取得したデバッグ出力に関する「キー」) にいくつか追加し、次の「奇妙な」gdb 出力を報告します。

以下は、CUFFT カーネル呼び出しからのものです。

[デバイス 0 で CUDA カーネル 41 (spVector0016B_kernelTex<(fftDirection_t)-1><<<(16,1,1),(4,64,1)>>>) を起動]

select () の 0x00007ffff569c8b3 from /lib/libc.so.6

(cuda-gdb)n

行番号情報を持たない関数選択を終了するまでシングル ステップ。

0x00007ffff3fe8de7 in ?? () /usr/lib/libcuda.so から

は '??' CUFFTカーネルなので、その場合は通常の出力ですか?

以下は別のカーネル起動からのものです。今回は私のものですが、「そのようなファイルはありません」と表示される理由がわかりません。

ブレークポイント 5、BCSG<<<(1,1,1)、(512,1,1)>>> (glerror=0x200620df8、sL=0x2009ffff8、ijL=0x200aa7ffc、X=0x2006035f8、D=0x2006075f8、Pre=0x200941ff8、 error=1.00000001e-10, L=700, N=1024, flag=0x200c00000, r=0x2006095f8, r0=0x20060b5f8, p1=0x20060d5f8, p2=0x20060f5f8, vv=0x2006115f8, s1=0x2006135f8, s2=0x2006155f8, t=0x2006175f8 、T=0x2006195f8、r1=0x20061b600、a=0x20061cbf8、w=0x20061e1f8、ベータ=0x20061f7f8、ns1=0x200affffc) BCGC_solver.cu:96 で

96 BCGC_solver.cu: そのようなファイルまたはディレクトリはありません。

BCGC_solver.cu で

また、これについてお尋ねしたいと思います:

警告: 現在のワープ以外のワープはシングル ステップである必要がありました。

...cuda-gdb内での実行が原因で発生するか、通常のプログラム実行でも発生する可能性がある場合。プログラムが完全にフリーズした直後に、コードの一部でプログラムがハングしています。しかし、シリアル実行だけであれば、従来のコードのようにすぐに続くと思います。

于 2012-09-13T12:20:09.693 に答える