Main Content

固定小数点コードを高速化するためのベスト プラクティス

fiaccel で推奨されるコンパイル オプション

  • -args – 例を使用して入力パラメーターを指定

    -args オプションを使用すると、fiaccel を使用して MATLAB® ファイルのコードを生成する際に、基本関数の入力のプロパティを例の値の cell 配列として指定できます。cell 配列は、可変またはリテラル配列の一定値を使用できます。cell 配列では、基本関数と同じ数と順序の入力が提供されなければなりません。

    -args オプションを使用する場合は、変数の値ではなく、これらのパラメーターのデータ型と配列の次元を指定することになります。詳細は、コマンド ラインでの例による入力プロパティの定義 (MATLAB Coder)を参照してください。

    メモ

    この代わりに、関数 assert を使用して、基本関数入力のプロパティを MATLAB ファイルに直接定義することもできます。詳細は、MATLAB ファイル内でのプログラミングによる入力プロパティの定義を参照してください。

  • -report – コード生成レポートを生成

    -report オプションを使用すると、コードの生成時に HTML 形式でレポートを生成して、MATLAB コードのデバッグや、コード生成に適しているかどうかの検証に役立てることができます。-report オプションを指定しないと、ビルド エラーや警告が発生した場合にのみ fiaccel でレポートが生成されます。

    コード生成レポートには、次の情報が含まれています。

    • コード生成の結果の概要。ターゲットのタイプと警告やエラーの数を含みます。

    • ビルドやリンクのアクティビティを記録するビルド ログ

    • 生成されたファイルへのリンク

    • エラーと警告メッセージ (該当する場合)

詳細は、「fiaccel」を参照してください。

ビルド スクリプト

ビルド スクリプトを使用すると、fiaccel を呼び出して MATLAB 関数から MEX 関数を生成できます。

ビルド スクリプトでは、コマンド ラインから繰り返し実行する一連の MATLAB コマンドを自動化できるため、時間の節約となり、入力エラーをなくすことができます。たとえば、ビルド スクリプトを使用して、各ビルドの前にワークスペースをクリアし、コード生成オプションを指定できます。

以下の例では、fiaccel を実行して lms_02.m: を処理するビルド スクリプトを説明します。

close all;
clear all;
clc;

N = 73113;

fiaccel  -report lms_02.m ...
  -args { zeros(N,1) zeros(N,1) }  
この例では、次のアクションが発生します。

  • close all は、ハンドルが隠されていない Figure をすべて削除します。詳細は、『MATLAB グラフィックス』で close の関数リファレンスを参照してください。

  • clear all は、メモリからすべての変数、関数、MEX ファイルを削除し、ワークスペースを空にします。また、このコマンドでは、すべてのブレークポイントもクリアされます。

    メモ

    デバッグのためにブレークポイントは残しておきたい場合は、ビルド スクリプトから clear all コマンドを削除してください。

  • 関数 clc は、コマンド ウィンドウの表示から入力と出力をすべてクリアし、"きれいな画面" にします。

  • N = 73113 は変数 N の値を設定します。この変数は 関数 lms_02 の 2 つの入力パラメーターのそれぞれにおけるサンプルの数を表しています。

  • fiaccel -report lms_02.m -args { zeros(N,1) zeros(N,1) } では、次のオプションを使用して fiaccel を呼び出し、lms_02.m ファイルのシミュレーションを高速化します。

    • -report はコード生成レポートを生成します。

    • -args { zeros(N,1) zeros(N,1) } は、基本関数入力のプロパティを例値の cell 配列として指定します。この場合、入力パラメーターは実数で double の N 行 1 列のベクトルです。

MATLAB コード アナライザーを使用した対話型のコード チェック

コード アナライザーでは、コードに問題がないかがチェックされ、パフォーマンスと保守性を最大にするための提案が行われます。作業をしながらコード アナライザーを使用して、MATLAB エディターで継続的にコードをチェックできます。

継続的にコードをチェックするには、次の手順に従います。

  1. MATLAB の [ホーム] タブで [基本設定] をクリックします。[コード アナライザー] を選択してコード アナライザーの基本設定のリストを表示します。

  2. [統合された警告とエラー メッセージを有効にする] チェック ボックスをオンにします。

テスト ベンチの関数コードからの分離

コア アルゴリズムはテスト ベンチから分離します。入力の読み込みや、入力値の設定、テストする関数の呼び出し、テスト結果の出力など、すべての前処理と後処理を実行するための独立したテスト スクリプトを作成します。fiaccel のリファレンス ページの例を参照してください。

コードの保存

コードは追加の変更を加える前に保存してください。これを実践することにより、エラー発生時のフォールバック、およびテストと検証用のベースラインを提供できます。ファイル命名規則に説明されているように、一貫したファイル命名規則を使用してください。たとえば、シーケンス内の各ファイルの名前に 2 桁の接尾辞を追加します。または、バージョン管理システムを使用します。

ファイル命名規則

異なる種類やバージョンの MATLAB ファイルを識別するために、一貫したファイル命名規則を使用します。これによってファイルを整理でき、既存のファイルを上書きするリスクや、別のフォルダーに同じ名前のファイルを作成するリスクを最小に抑えることができます。

たとえば、『入門』の MEX 関数生成のチュートリアルでは、次のファイル命名規則を使用しています。

  • ビルド スクリプトには接尾辞 _build を使用する。

  • テスト スクリプトには接尾辞 _test を使用する。

  • _01 などの数字の接尾辞は、ファイルのバージョンを示す。これらの数字は、一般的に 01、02、03 などで始まり、連続する 2 桁の整数です。

以下に例を示します。

  • ファイル build_01.m は、このチュートリアルのビルド スクリプトの最初のバージョンです。

  • ファイル test_03.m は、このチュートリアルのテスト スクリプトの 3 番目のバージョンです。