定点设计师

固定小数点アルゴリズムと浮動小数点アルゴリズムをモデル化して最適化

定点设计师™には,固定小数点アルゴリズムおよび浮動小数点アルゴリズムを最適化して組み込みハードウェアに実装するためのデータ型とツールが用意されています。これには,固定小数点データ型、浮動小数点データ型,およびターゲット固有の数値設定が含まれます。定点设计师を使用すると,ターゲットを意識したシミュレーション(固定小数点の場合,ビットトゥルーシミュレーション)を実行することができます。そして,その設計をハードウェアに実装する前に,オーバーフローや桁落ちなどの量子化の影響をテストしてデバッグできます。

定点设计器には、倍精度アルゴリズムを解析して、単精度や半精度の浮動小数点または固定小数点に変換するためのアプリとツールが用意されています。また、最適化ツールを使用して、数値精度の要件やターゲット ハードウェアの制約を満たすデータ型を選択できます。効率的な実装にするために、計算量が多い設計構造を、圧縮ルックアップ テーブルなどのハードウェアに最適なパターンに置き換えることもできます。

Cおよび 高密度脂蛋白の量産コードは、固定小数点および浮動小数点に最適化されたモデルから直接生成できます。

詳細を見る:

データ型の探索

浮動小数点と固定小数点のデータ型を調査して、数値精度に関するトレードオフを解析します。

固定小数点の指定

アプリケーション固有の語長,2進小数点スケーリング,任意の勾配とバイアスのスケーリング,丸めモードやオーバーフローモードなどの詳細な設定を行い,固定小数点プロパティを指定します。

丸めモードなど,固定小数点データ型とそのすべてのプロパティを指定します。

浮動小数点シミュレーション

シミュレーションおよびコード生成で,flush-to-zeroなど,非正規な浮動小数点数に関するターゲットハードウェアの動作をエミュレートします。MATLAB®および仿金宝app真软件®で16ビット半精度浮動小数点データ型を使用し,有限精度の浮動小数点をシミュレーションします。

計測と可視化

モデル全体の自動計測によってシミュレーションデータと統計情報を収集します。範囲データを収集して,設計を探索および解析します。可視化を使用して,ハードウェアリソースを効率的に利用するために,設計を最適化します。

信号範囲とヒストグラムデータの可視化

派生範囲解析

すべてを網羅するシミュレーションテストベンチを作成する必要なく,設計の数学的な解析を行うことで信号範囲を導き出し,最悪の場合の範囲またはエッジケースを決定します。導き出された範囲を使用することで,あらゆる起こり得るオーバーフローを防止または処理することを確認できます。

設計範囲を使用した範囲の導出。

データ入力の自動化

固定小数点データ型と浮動小数点データ型を使用して設計を量子化し,最適化します。

固定小数点の量子化

ガイド付きワークフローを使用して,さまざまな固定小数点データ型と,その量子化がシステムの数値動作に与える影響を調査します。設計内の変数のダイナミックレンジを確認して,変換後のアルゴリズムが浮動小数点の表現と固定小数点の表現で変わらずに動作することを確認します。

固定小数点ツールを使用した浮動小数点モデルの変換。

浮動小数点の量子化

設計を自動的に倍精度から単精度に変換して,有限精度の浮動小数点の表現と量子化の効果を単精度で解析します。

単精度コンバーターを使用した自動変換

データ型の最適化

システムの数値動作に関する許容誤差の制約を満たしながら、さまざまな固定小数点の設定を自動的に繰り返し実行して、最適な異種のデータ型を選択します。最適化では、固定小数点データ型を使用して合計ビット幅を最小化し、設計の効率化を図ります。

組み込み実装

実装のトレードオフを調査し,効率的な組み込みアルゴリズムを使用して設計を最適化します。

関数近似とルックアップテーブルの圧縮

最適なルックアップテーブルを使用して,複雑な関数(√6,expなど)または複雑なサブシステムの近似値を数学的に計算します。データポイント数とデータ型を最適化することで,既存のルックアップテーブルを圧縮してメモリ使用量を削減します。

ビットトゥルーコードの生成

アクセラレーション,プロセッサインザループシミュレーション,ソフトウェアインザループシミュレーションなど,シミュレーションからコード生成まで,モデルベースデザイン(MBD,モデルベース開発)全体でのビットトゥルーを実現します。ビットトゥルー表現に基づく固定小数点アルゴリズムの解析と検証を行います。半精度データ型を含む,最適化された精度のデータ型から効率的なコードを生成します。

生成されたコードのビットトゥルー動作をシミュレーターで検証。

高密度脂蛋白最適化行列ブロック

FPGA上でのハードウェア効率の高い実装のために,QR分解などの線形方程式およびコア行列演算の設計パターンをモデル化する仿真软金宝app件ブロックの固定小数点HDLライブラリ[HM1]にアクセスします。高密度脂蛋白编码器™を使用して,これらのブロックを組み込んだ設計のHDLコードを生成します。

QR分解に対するHDL最適化設計パターンを提供するライブラリブロック。

テストとデバッグ

アルゴリズムの数値動作を解析,テスト,デバッグします。

オーバーフローおよび桁落ちの検出

オーバーフロー,桁落ち,無駄な範囲や精度の発生源を素早く特定,追跡,デバッグし,理想的な浮動小数点の動作とその設計を比較します。モデルとコードのビットトゥルー一致により,開発の早期段階で問題点の検出を可能にするモデルベースデザインの多くの利点を最大限に活用できます。

オーバーフローの根本原因の追跡。

数値エッジケースをテスト

アルゴリズムのエッジケースをテストして数値的一貫性を確保するために,境界に近い値や非正規数などの数値的に沢山の固定小数点値および浮動小数点値を生成します。さまざまな次元と複雑度を持つ信号の組み合わせを,整数型、浮動小数点型,または固定小数点型で生成します。

データジェネレーターAPIによるテストデータの生成。