手動による固定小数点の変換ワークフロー
MATLAB® でアルゴリズムを実装します。
元の MATLAB アルゴリズムを呼び出してアルゴリズムの動作を検証するテスト ファイルを作成します。
固定小数点に変換する前に浮動小数点でアルゴリズムが期待どおりに機能することを検証するテスト ファイルを作成します。同じテスト ファイルを使用して、固定小数点データ型の推奨を得ます。変換後にこのテスト ファイルを使用して、固定小数点の結果を浮動小数点のベースラインと比較します。
インストルメンテーションのアルゴリズムを準備します。
エントリポイント関数を作成します。
インストルメンテーションとコード生成を行う場合は、固定小数点に変換する関数を呼び出すエントリポイント関数があると便利です。関数の入力をさまざまなデータ型にキャストし、さまざまなバリエーションのアルゴリズムに呼び出しを追加して比較できます。エントリポイント関数を使用すると、固定小数点と浮動小数点の両方のバリアントのアルゴリズムを実行するだけでなく、固定小数点のさまざまなバリアントを実行することもできます。このアプローチにより、コードをより高速に反復して、最適な固定小数点設計を得ることができます。
元の MATLAB アルゴリズムに対するインストルメント化された MEX をビルドします。
元の MATLAB アルゴリズムを実行して最小/最大データのログを作成します。インストルメンテーション レポートでこのデータを表示します。
データ型をアルゴリズムから分離します。
型テーブルを使用して関数を変換し、エントリポイント関数を更新します。
変更後の関数を検証します。
推奨されたデータ型に基づいて固定小数点型を作成します。
MEX 関数をビルドします。
MEX 関数を実行して、その動作をベースラインと比較します。
推奨された固定小数点データ型を使用します。
推奨されたデータ型に基づいて固定小数点型を作成し、MEX をビルドして実行し、ベースラインと比較します。
MATLAB Coder™ ライセンスがある場合は、オプションでコードを生成します。
ネイティブの C データ型をテストすることから開始します。
アルゴリズムを繰り返し実行して調整します。
たとえば、オーバーフローが発生しないようにしたり、バイアスを除去したりして、アルゴリズムを調整します。