0

私はNSIGHTとCUDAが初めてです。CUDA カーネル コード内にブレークポイントを設定しようとしましたが、設定できませんでした。デバッグしたい特定の行ではなく、カーネルの最後にブレークポイントが設定されています。

  • NSIGHT 2.2 および CUDA 4.2 で VS2010 (MFC プロジェクト) を使用しています。
  • デバッグモードでコンパイルしています。
  • 「StratUp プロジェクト」ではないプロジェクトで CUDA を使用しています。
  • 「はい (-g)」で「ホスト デバッグ情報の生成」を使用しています。
  • 「はい (-G)」で「デバイスのデバッグ情報の生成」を使用しています

現在、Menu->Nsight->Start CUDA debuggingからプログラムを実行しています。別のプロジェクト (「スタートアップ プロジェクト」) にブレークポイントを設定しようとすると、成功します。カーネル全体ではなく、特定の行でブレークポイントを動作させる方法について何か提案はありますか?

4

2 に答える 2

1

カーネルをアクティブにするために使用したスレッド (256X256) が多すぎます。dim3 スレッド (256,256) (kernel<<<...,threads>>>

于 2013-02-28T20:24:33.790 に答える
-2

CUDA をデバッグする場合、マシンのコア数が実行中の CUDA スレッド数よりも多い場合、デバイス コードに設定されたブレークポイントが正しく機能しないことに注意することが重要です。さらに、CUDA スレッドの数がコアの数で割り切れない場合、一部のコアは最後の反復でデバイス コードのブレークポイントにヒットしません。

于 2013-04-03T13:43:46.553 に答える