Main Content

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

霧修正 Simulink モデルの GPU コードの生成

この例では、霧のかかったイメージを入力として受け取り、霧が取り除かれたイメージを出力として生成する Simulink® モデルから、CUDA® コードを生成する方法を示します。この例は、霧修正アルゴリズムの一般的な実装です。この例では、関数conv2rgb2gray、およびimhist (Image Processing Toolbox)を使用します。この例は霧の修正の例とほぼ同じです。この例では以下の概念を説明します。

  • GPU 環境の検証。

  • イメージ処理関数を使用した、Simulink での霧修正アプリケーションのモデル化。

  • GPU コード生成用のモデルの構成。

  • Simulink モデルの CUDA 実行可能ファイルの生成。

必要条件

GPU 環境の検証

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

envCfg = coder.gpuEnvConfig('host');
envCfg.BasicCodegen = 1;
envCfg.Quiet = 1;
coder.checkGpuInstall(envCfg);

霧修正 Simulink モデル

霧修正のための Simulink モデルを構成する Fog Rectification サブシステムには、霧のかかったイメージを入力として受け取り、霧が取り除かれたイメージを出力として返す MATLAB Function ブロックが含まれています。これには霧の修正の例で説明する fog_rectification アルゴリズムが使用されます。このモデルを実行すると、Visualization ブロックにより、霧がかかっている入力イメージと霧が取り除かれた出力イメージが表示されます。

open_system('fog_rectification_model');

シミュレーション ターゲットでのモデルの実行

[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

[シミュレーション ターゲット] ペインで [GPU による高速化] を選択します。

ノーマル モードでシミュレーションを実行します。

set_param('fog_rectification_model', 'SimulationMode', 'Normal');
sim('fog_rectification_model');

Simulink モデルの生成とビルド

[コード生成] ペインで言語として [C++] を選択し、[GPU コードの生成] を有効にします。

[コード生成]、[GPU コード] ペインを開きます。サブカテゴリ [ライブラリ] で、[cuBLAS][cuSOLVER]、および [cuFFT] を有効にします。

rtwbuild コマンドを使用して、ホスト GPU で Simulink モデルを生成してビルドします。コード ジェネレーターは実行可能ファイルを "ビルド フォルダー" (現在の作業フォルダーの中の fog_rectification_model_ert_rtw という名前のサブフォルダー) に配置します。

status = evalc("rtwbuild('fog_rectification_model')");

クリーンアップ

Simulink モデルを閉じます。

close_system('fog_rectification_model');