Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

gpucoder.profile

生成された CUDA コード用の実行プロファイル レポートの作成

説明

gpucoder.profile(func_name,codegen_inputs) は、設計ファイル func_name について生成された CUDA コードの実行プロファイリング レポートを生成します。引数 codegen_inputs は、設計ファイルの入力を指定します。プロファイリング レポートを生成するには、Embedded Coder® 製品がインストールされていなければなりません。

メモ

プロファイリング ワークフローは NVIDIA® からの nvprof ツールによって異なります。CUDA® ツールキット v10.1 では、NVIDIA はパフォーマンス カウンターへのアクセスを管理者ユーザーに制限します。GPU パフォーマンス カウンターをすべてのユーザー アカウントで有効にするには、https://developer.nvidia.com/ERR_NVGPUCTRPERM (NVIDIA) の手順を参照してください。

gpucoder.profile(___,Name,Value) は、1 つ以上のプロファイリング オプションを名前と値のペアの引数として指定して実行プロファイリング レポートを生成します。

すべて折りたたむ

ソフトウェアインザループ (SIL) 実行プロファイリングを介して、MATLAB アルゴリズムおよびその生成された CUDA コードの細粒度の解析を実行します。実行プロファイリング レポートを生成するには、Embedded Coder 製品がインストールされていなければなりません。

N 次元高速フーリエ変換を実行するエントリポイント関数を記述します。FFT を GPU にマッピングするには、coder.gpu.kernelfun プラグマを使用します。既定では、EnableCUFFT プロパティが有効にされているため、コード ジェネレーターは cuFFT ライブラリを使用して FFT 演算を実行します。

function [Y] = gpu_fftn(X)
  coder.gpu.kernelfun();
  Y = fftn(X);
end

実行プロファイリング レポートを生成するには、関数 gpucoder.profile を使用します。

cfg = coder.gpuConfig('exe');
cfg.GpuConfig.MallocMode = 'discrete';
gpucoder.profile('gpu_fftn',{rand(2,4500,4)},'CodegenConfig',cfg,...
    'CodegenArguments','-d profilingdir','Threshold',0.001);

コード実行プロファイリング レポートは、SIL 実行から収集されたデータに基づくメトリクスを提供します。実行時間は、SIL テスト ハーネスに追加された計測プローブか、コンポーネントごとに生成されたコードの内部に追加された計測プローブで記録したデータから計算されます。詳細は、View Execution Times (Embedded Coder) を参照してください。

入力引数

すべて折りたたむ

エントリポイント関数または設計ファイルの名前。

例: gpucoder.profile('xdot',{1000,rand(1000,1),1,1,rand(1000,1),1,1})

エントリポイント関数または設計ファイルのコンパイル時の入力。

例: gpucoder.profile('xdot',{1000,rand(1000,1),1,1,rand(1000,1),1,1})

名前と値の引数

例: gpucoder.profile('xdot', {1000,rand(1000,1),1,1,rand(1000,1),1,1},'NumCalls',2,'CodegenConfig',cfg,'CodegenArguments','-d discrete','Threshold',0.01)

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

プロファイリングされるコードのセクションを実行する回数を指定します。既定値は 6 です。最初の実行は一般的に外れ値になるためレポートから除外されます。

CUDA コードとプロファイリング レポートの生成に使用するコード生成構成オブジェクトを指定します。この値を指定しない場合、既定の coder.EmbeddedCodeConfig オブジェクトが使用されます。

追加の codegen 引数を string として指定します。既定値は NULL (空の string) です。

レポートに表示される GPU 呼び出しを制御するには、しきい値を使用します。実行時間がしきい値パラメーターの値を下回る関数呼び出しは、プロファイリング トレースからフィルター処理されます。

バージョン履歴

R2018b で導入