3

MatlabからCUDAコードをプロファイリングする必要があります。パフォーマンスを向上させるために、matlabコードの一部をCUDAに変換しています。私はCUDAを呼び出すmexFunctionを呼び出すことによってこれを行いました。matlabfeval関数は十分な制御を提供しません。VSを介してmexFunctionを実行してこれをデバッグできますが、これが問題であると信じているため、カーネルもデバッグする必要があります。

だから、私の質問は、それを呼び出すmatlab関数を実行するときにプロファイラーを介してCUDAコードを実行するにはどうすればよいですか?

CUDA関数へのすべての入力の値をハードコーディングすることは実用的ではありません。

TeslaC2050GPUカードを搭載したWindows764ビットでMatlab2012a64ビットを実行しています

4

3 に答える 3

5

必要なのがパフォーマンスのプロファイリングであり、nSightが提供するデバッグ機能ではない場合は、次のトリックを使用して、テストメイン関数でexeを作成せずに、ビジュアルプロファイラーでmatlabプログラムを実行できます。

でバッチファイルを作成する

matlab -nojvm -nodesktop -wait -sd "yourBaseFolder" -r "theMFunctionYouWantToRun;exit;"

次に、nVidiaVisualProfilerでスクリプトを実行します。

私はfevalCUDAAPIを使用しているので、これにはMatlabが実際に何をしているのかを示すという追加の利点があります。MEXを使用する場合にも機能するはずですが、試したことはありません。MEXファイルでも機能するかどうか教えてください。

于 2012-09-12T09:07:08.950 に答える
4

次の手順で、NVIDIA Visual Profilerを使用して、CUDAコードを含むMatlabmexfileをプロファイリングできます。

  1. VisualStudioを使用したCUDAmexファイルのコンパイルのガイドラインに従って、CUDAコードを含むmexfileを記述します。
  2. cudaDeviceReset()mexfunctionの最後に追加します。
  3. Matlab.mファイルの最後にaddaddを記述しますexit
  4. NVIDIAVisualProfilerを起動します。ファイル->新しいセッション。
  5. ファイル: Matlab実行可能ファイルのフルパスを追加します(例:C:\ Program Files \ MATLAB \ R2012b \ bin \ win64 \ MATLAB.exe)。
  6. 作業ディレクトリ:Matlab.mファイルのフルパスを追加します。
  7. 引数:-nojvm -nosplash-rfile_name_without_m_extension
  8. 次へ->終了、それだけです!
于 2013-10-07T21:18:51.063 に答える
1

NVIDIA Nsight Visual Studio Edition 2.2は、カーネルのプロファイルを作成できるはずです。

  1. Nsight | 新しい分析アクティビティ
  2. アクティビティタイプをプロファイルCUDAプロセスツリーに設定します(matlabは別の実行可能ファイルを起動できます)
  3. 実行する実験をすべてに設定

Nsight Visual Studio CUDA Profilerには、これを可能にする2つの機能があります。

  1. アクティビティプロファイルCUDAプロセスツリーは、起動されたプロセスのCUDAプロセスとすべての子プロセスをプロファイルします。Matlabのデフォルトの実装は32ビットバリアントを起動することであり、64ビットシステムの場合は64ビット実行可能ファイルを起動するため、Matlabを起動するだけでは不十分であるため、これは重要です。

  2. Nsightプロファイラーは、アプリケーションの1回の実行で同じ入力を使用してカーネルを複数回実行することをサポートする、アプリケーションカーネルリプレイをサポートします。

NVIDIA Visual Profilerは、アプリケーションを複数回実行することで結果を収集します。ランチャーアプリケーションはサポートしていません。これは、Matlab.exeの正しいバージョンを直接起動することで解決できる場合があります。アプリケーションの再生メカニズムにより、mexFunctionの実行を自動化できる場合は、ビジュアルプロファイラーを使用してプロファイリングできる場合があります。Visual Profilerを使用してMatlabのプロファイリングを試したことはありませんが、Nsightチームが過去にこれをテストしたことは知っています。

于 2012-08-01T20:32:19.847 に答える