Visual Studio CNTKソース コードのデバッグ
CUDA カーネルをデバッグする手順は次のとおりです。
- ここからの指示に従って NVIDIA Nsight をインストールする
- 「ローカル デバッグ」の指示に従います。
- 環境変数を NSIGHT_CUDA_DEBUGGER = 1 に設定します。
- Visual Studioと Nsight モニターを管理者として実行します。
- Nsight Monitor-Options-CUDA>> で、"Use this monitor for CUDA attach" を True に設定します。 Nsight を再起動する必要がある場合があります。 管理者としてもう一度実行します。
- Visual Studioで、Nsight-Options> に移動し、オプションが Nsight モニターのオプションと一致していることを確認します (例: ポートは同じです)。 特に、"セキュリティで保護された接続の確立" が両方で同じであることを確認します。
- ソリューション エクスプローラーで MathCUDA プロジェクトを右クリックし、[プロパティ] に移動します。
- [構成プロパティ] -> [CUDA C/C++ ] -> [デバイス] に移動し、[GPU デバッグ情報の生成] を [はい] に設定します
- [構成プロパティ] -> [CUDA リンカー] -> [全般] に移動し、[GPU デバッグ情報の生成] を [はい] に設定します
- カーネルにブレークポイントを追加し、CNTKを再構築し、デバッグしようとしているものを実行する準備をします。
- VS で、[デバッグ -> プロセスにアタッチ] に移動し、トランスポートを Nsight GPU デバッガーに設定し、修飾子を localhost に設定します。
- CNTKを開始します。
- [最新の情報に更新] をクリックし、プロセス一覧でCNTKを見つけてアタッチします。 ブレークポイントにヒットすると、カーネルのすべてのローカル変数を確認できます。 threadIdx や blockIdx などの CUDA グローバルのみが表示される場合は、MathCUDA プロパティで GPU デバッグ フラグを適切に設定していません。