1

MATLAB で GPU 並列計算を行うには、MATLAB スクリプトによって呼び出される .cu 関数またはカーネルを記述する必要があります。コードの実行中に .cu ファイルにアクセスする方法はありますか? 現在、GEDIT を使用して CUDA カーネルを作成しています。.cu ファイルを段階的にデバッグする方法を教えてください。私はCUDAにそのmexのものを使用していません。.CU ファイルを開発し、MATLAB から直接呼び出しています。

4

2 に答える 2

0

Eugeneが言ったように、*.cuデバッグを有効にしてコンパイルしてください

nvcc -g -G <insertName>.cu

cuda-gdb次に、MATLAB のデバッグ オプションに渡します。

matlab -Dcuda-gdb

これにより、デバッガが実行されます。デバッガー プロンプトから:

 (cuda-gdb) set cudamemcheck on
 (cuda-gdb) run -nodesktop -nojvm

有効化cudamemcheckはオプションですが、メモリ アクセス違反を特定するのに非常に役立ちます。"run" コマンドは MATLAB を実行します。私は常に GUI ( -nodesktop) と Java 仮想マシン ( -nojvm) なしで実行します。GUI でこれを試みた場合は YMMV。

この時点で、MATLAB 環境内にいるため、問題を引き起こしている (CUDA) プログラムを実行することができます。コマンドを習得する必要がありcuda-gdbます。

編集:私の経験によれば、-nojvmオプションを使用する必要があります。それ以外の場合はセグメンテーション。

于 2015-11-27T14:06:50.550 に答える