0

私はCUDAにかなり慣れておらず、ここでズボンの座席のそばを少し飛んでいます...

管理者権限を持たないリモートマシンでCUDAプログラムをデバッグしようとしています。プログラムをでコンパイルしてnvcc -g -Gから、cuda-gdbでデバッグしてみます。ただし、gdbがカーネルの呼び出しにヒットするとすぐに(入力する必要はなく、ホストコードでは発生しません)、次のようになります。

(cuda-gdb) run
Starting program: /path/to/my/binary/cuda_clustered_tree 
[Thread debugging using libthread_db enabled]

[1]+  Stopped                 cuda-gdb cuda_clustered_tree

その後、cuda-gdbは私をターミナルにダンプします。もう一度cuda-gdbを実行しようとすると、

An instance of cuda-gdb (pid 4065) is already using device 0. If you believe
you are seeing this message in error, try deleting /tmp/cuda-dbg/cuda-gdb.lock.

回復する唯一の方法はkill -9cuda-gdbとcuda_clustered_(後者は私のバイナリの一部であると思います)です。

このマシンには2つのGPUがあり、CUDA 4.1を実行しており(インストールされているものはたくさんありますが、これを設定しPATHましLD_LIBRARY_PATHた)、コンパイルしてdeviceQueryとbandwidthTestを正常に実行します。

必要に応じて、より多くの情報を提供できます。私はオンラインで見つけることができるすべての場所を検索しましたが、これについては何の助けも見つかりませんでした。

4

1 に答える 1

0

理解した!結局のところ、cuda-gdbはcshを嫌っています。

cshを実行している場合、cuda-gdbは上記の異常な動作を示します。csh内からbashを実行し、次にcuda-gdbを実行しても、動作を確認しました。シェルをbashとして開始する必要があり、bashのみを開始する必要があります。

マシンでは、デフォルトのシェルはcshでしたが、私はbashを使用しています。直接変更することは許可されていなかったため、.loginスクリプトに「exec / bin /bash--login」を追加しました。

したがって、bashを実行していても、cshによって開始されたため、cuda-gdbは上記の異常な動作を示します。'exec'コマンドを削除したので、cshを直接実行していて、何も上に表示されていませんでしたが、それでも動作は示されていました。

結局、私はITにシェルを直接bashに変更させる必要がありました(彼らによる多くの患者のトラブルシューティングの後)。今では意図したとおりに機能します。

于 2012-05-22T22:03:08.017 に答える