主要内容

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

生成コードのGPU実行プロファイリング

この例では,関数gpucoder.profileを使用して,生成されたCUDA®コードの実行プロファイリングレポートを生成する方法を示します。この概念を説明するための例として,霧の修正を使用します。

必要条件

GPU環境の検証

この例を実行するのに必要なコンパイラおよびライブラリが正しく設定されていることを検証するために,関数coder.checkGpuInstallを使用します。

envCfg = coder.gpuEnvConfig (“主机”);envCfg。BasicCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);

コード生成およびプロファイリングの準備

関数fog_rectification.mは,霧のかかったイメージを入力として受け取り,霧が取り除かれたイメージを返します。CUDAコードを生成するには,ダイナミックライブラリ(“dll”)ビルドタイプを指定して,GPUコード構成オブジェクトを作成します。関数gpucoder.profileは嵌入式编码器構成オブジェクトのみを受け入れるため,オプションが明示的に選択されていない場合でも编码器。EmbeddedCodeConfig構成オブジェクトが使用されます。

inputImage = imread (“foggyInput.png”);输入= {inputImage};designFileName =“fog_rectification”;cfg = coder.gpuConfig (“dll”);cfg.GpuConfig.MallocMode =“离散”

実行プロファイリングレポートの生成

0.003しきい値をに指定してgpucoder.profileを実行し,SIL実行レポートを表示します.0.003というしきい値は代表的な数値にすぎません。生成コードに多数のCUDA APIまたはカーネルの呼び出しがある場合,各呼び出しが合計時間のほんの一部しか占めていない可能性は高くなります。意味のあるプロファイリングレポートを生成するには,低いしきい値(0.001 ~ 0.005)を設定することをお勧めします。実行数の値を非常に低い数値(5未満)に設定することは推奨されません。これでは一般的な実行プロファイルが正確に表現されないためです。

gpucoder.profile(designFileName, inputs,“CodegenConfig”cfg,“阈值”, 0.003,“我会”10);
clear fog_rectification_sil执行分析数据可供查看。打开< a href = " matlab万博1manbetx: Simulink.sdi.view;“>模拟数据检查员。终止后可用的执行分析报告。###停止SIL执行' fog_整流'

関数fog_rectificationのコード実行プロファイリングレポート

コード実行プロファイリングレポートは,SIL実行または公益诉讼実行から収集されたデータに基づくメトリクスを提供します。実行時間の計算は,SILまたは公益诉讼テストハーネスに追加された計測プローブか,各コンポーネントについて生成されたコードの内部に追加された計測プローブで記録したデータを基に行われます。詳細は,视图执行时间(嵌入式编码)を参照してください。これらの数値は代表的なものです。実際の値はハードウェア設定によって異なります。このプロファイリングは,6コアの3.5 GHz Intel®Xeon®CPUおよびNVIDIA GPU泰坦XPを搭載したマシンでMATLAB R2020aを使用して行われました。

1 .まとめ

2 .プロファイリングされたコードのセクション

3.fog_rectificationのGPUプロファイリングトレース

セクション3には,実行時間がしきい値を上回るGPU呼び出しの完全なトレースが表示されます。“阈值”パラメーターは,実行に対する最大実行時間の割合として定義されます(初回の実行は除外されます)。たとえば,最上位の関数fog_rectificationの9回の呼び出しのうち,3回目の呼び出しで最大時間(元新台币女士)がかかった場合,最大実行時間は元新台币女士になります。阈值t *美元女士よりも長い時間をかけたすべてのGPU呼び出しが,このセクションに表示されます。呼び出しの上にカーソルを置くと,他の適切な,時間計測以外の関連情報に関する実行時の値が呼び出しごとに表示されます。たとえば,fog_rectification_kernel10の上にカーソルを置くと,その呼び出しに関するブロックの次元,グリッドの次元,およびスタティック共有メモリのサイズ(简约単位)が表示されます。このトレースは最大時間がかかった実行に対応しています。

4.fog_rectificationのGPUプロファイリングの概要

レポートのセクション4には,セクション3に表示されているGPU呼び出しの概要が示されます。cudaFreeは,fog_rectificationの1回の実行あたり17回呼び出されており,9回のfog_rectificationの実行に対する17回のcudaFree呼び出しにかかった平均時間は1.7154毫秒です。この概要は,かかった時間の降順で並べ替えられており,最も時間がかかったGPU呼び出しをユーザーが把握しやすくなっています。