GPUでプログラミングするとき、カーネルの機能をデバッグする良い方法はありますか?CUDAのカーネル機能を効率的にデバッグする方法はありますか?
私が使用する方法は、printf(...)
を使用しているか、または結果をCPUにコピーしてからそれらを調べることです。
デバッグに時間がかかりすぎます。
あなたのアドバイスをいただきありがとうございます。ありがとうございました。
GPUでプログラミングするとき、カーネルの機能をデバッグする良い方法はありますか?CUDAのカーネル機能を効率的にデバッグする方法はありますか?
私が使用する方法は、printf(...)
を使用しているか、または結果をCPUにコピーしてからそれらを調べることです。
デバッグに時間がかかりすぎます。
あなたのアドバイスをいただきありがとうございます。ありがとうございました。
Windowsであれば、NVIDIA Parallel Nsight(Nvidiaの公式からデバッグ・ツール)私たちは、カーネルのバージョンごとにCPUの対応を作成する必要があることを意味
デバッガの使用はどうですか?
Windowsの場合は、VisualStudioデバッガを使用できます。 あなたがLinux(もっと良い)を使っているなら、cuda-gdbを使うことができます。
適切なカーネルを作成するための一般的な方法は次のとおりです。
最初のCPUのみのための簡単なアルゴリズムを実装します。 次に、カーネルを作成する最も簡単な方法から始めて、データ をアップロード/ダウンロードし、この最初の単純なカーネルの結果を正しいcpuカーネルの結果と比較してください。
次に、複雑さを追加して新しいバージョンのカーネルを作成します。
を試してみてください? – Yik
NsightがGPUクラスタに使用されていると聞きました。 1つのGPUで自分のマシンにNsightを使用できますか? – Yik
CUDAカーネルを1台のマシンでデバッグする場合、少なくとも2つの独立したGPUが必要です(そのうちの1つはNVIDIAで、Nsightを実行できる必要があります)。 – Daniel