2

CUDA_EXCEPTION_5、WarpOut-of-rangeAddressで失敗するカーネルがあります。

cuda-gdbは自動的に特定のブロックにフォーカスを置きます。エラーが発生しているブロックですか、それともnvidiaのドキュメントにCUDA_EXCEPTION_5が「正確ではない」と記載されている場合、デバッガーは特定の例外が発生したブロック/スレッドを判別できないことを意味しますか?

ワープに対してきめ細かいだけの場合、cuda-gdb内で、どのワープ内で例外が発生し、どのブロックがそのワープに属しているかを確認する方法はありますか?

4

2 に答える 2

4

cuda-gdbは、例外がスローされたスレッドを常に正確に検出できるとは限りません。精度を上げるには、「set cuda memcheck on」コマンドを使用して、アプリケーションを開始する前にmemcheck統合を有効にする必要があります。統合されたmemcheckを有効にしてアプリケーションを実行すると、パフォーマンスが低下することに注意してください。

于 2012-12-03T23:11:09.013 に答える
1

CUDA 5.0では、cuda-gdb内から使用した場合のcuda-memcheckは、スタンドアロンで実行した場合と同様のメモリアクセスエラー検出機能を備えています。スタンドアロンのcuda-memcheckアプリケーションには、競合状態の検出、メモリリークの検出、最初のエラーを超えて続行する機能などの追加機能があります。Cuda-memcheckはautostepとは関係がなく、cuda-gdbと統合すると、範囲外または不整合なメモリアクセスから最初に検出されたエラーでアプリケーションを正確に停止します。

于 2012-12-04T17:32:03.630 に答える