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