私はGPUプログラミング(C#)にALEA GPUを使用しています。カーネルでatomic_addのような原子操作を使用すると、カーネルのデバッグ中に変数のCUDA WarpWatchウィンドウに「名前を解決できませんでした」というエラーが表示されます。 blockIdx.x、blockDim.x、threadIdx.xおよび配列の値が表示されますが、変数名は解決できません。カーネルは期待どおりに動作しますが、デバッグ中に変数を監視することができないため、バグを修正することが困難です。 CUDA 8 Toolkitがインストールされ、Visual Studio 2015を使用しています。ALEA Kernel with Atomic Operation(atomic_add)をデバッグ中に「名前を解決できませんでした」
アイデアはありますか?
デバッグコード、つまりデバッグプロジェクトをコンパイルしましたか? –
はい。私はALEAGPUサイトで書かれたすべてをやった。プロジェクトはデバッグモードで動作します。私はすでにそれをデバッグし、カーネルをステップ実行することができます。原子操作がない場合は、変数の値を見ることができます。それ以外の場合は、Warp Watchウィンドウで「名前を解決できませんでした」というエラーが表示されます。私は何が起こっているかを追うことができるように、(カーネルコードで)コンソールに変数値を書き込まなければなりませんでした。 –
@RobertCrovella、私はALEA GPUを理解しているので、CUDAのコンパイルがここに含まれているかどうかはわかりません。デバッグ情報はCUDAコンパイラではなく、ALEAソリューションによって管理されているようです。 –