多数のブロック/スレッドに対して非常に確実にハングする、かなり大きくて複雑な CUDA コードがあります。コードがハングする場所を正確に把握しようとしています。
でコードを実行するとcuda-gdb
、どのスレッド/ブロックがハングしているかがわかりますが、「仮想 PC」以外の場所はわかりません。
デバッグ情報を取得するために「-G」を指定してコードをコンパイルすると、実行時間が大幅に遅くなり、長時間実行してもハングしなくなります。
「仮想PC」をソースコードのコード行にマッピングする方法はありますか? または、すべての最適化をオフにせずにデバッグ情報を取得する方法はありますか?
「-G3」を使用してみましたが、役に立ちませんでした。これは、タイプ " " の警告を表示するだけですnvcc warning : Setting optimization level to 0 as optimized debugging is not supported
。CUDA コンパイル ツール リリース 4.1 を使用しています。